sybase数据库的用户,包含两个层面:一个是登陆号,另一个是具体DB的用户,我们登陆时,使用的是登录号,但是这个登录号可以 *** 作哪些DB及 *** 作权限则取决于数据库用户。一般情况下,我们可以采取相同的名字来表示登录号和数据库用户。
首先创建一个登陆号:
sp_addlogin
loginame,
passwd
loginame
登录名
passwd
密码
全部语法(一般不用到)为:
sp_addlogin
loginame,
passwd
[,
defdb]
[,
deflanguage
]
[,
fullname
]
[,
passwdexp
]
[,
minpwdlen
]
[,
maxfailedlogins
]
然后创建用户:
sp_adduser
loginame
这样创建当前数据库的用户,且用户名和登陆名是一样的。
全部语法为:
[dbname]sp_adduser
loginame
[,
username[,
grpname]]
最后分配权限:
grant
all
|
select,insert,delete,update
on
table_name
|
view_name
|
stored_procedure_name
to
username
或
grant
all
|
create
database,create
default,create
procedure,create
rule,create
table,create
view,set
proxy,set
session
authorization
to
username
例,假如当前DB为:DB001:
sp_addlogin
'test001','password001'
go
sp_adduser
'test001',
'user001'
go
grant
create
table
to
user001
go
创建了一个test001的登录名,之后为之创建一个当前数据库的用户,使这个登录名可以 *** 作当前数据库。之后分配了创建表的权限给user001。
这个时候你就可以使用用户名'test001'和密码'password001'登陆了,并且可以在DB001中创建表了。同时由于sp_adduser
的时候没有指定grpname参数,那么默认是public用户组,这个组里的用户默认即开通了select/delete/update/insert的权限。
如果你希望去掉一些权限,请使用revoke命令,其语法了grant完全相同,你只需要将grant换成revoke即可,例:
revoke
select
on
address
to
user001
禁止user001查看address表。
用户对哪一个数据库有 *** 作权限,是要用root用户进行授权的。
创建用户:
CREATE USER'username'@'host' IDENTIFIED BY 'password';
其中username 是用户名,host是可以进行远程访问数据库的服务器地址。
给用户授权:
GRANT privileges ONdatabasenametablename TO 'username'@'host';
给'username'@'host'用户进行授权,其中privileges是要授予的权限,可以是all privileges、select、update等。databasenametablename是要访问的某个数据库中的某张表,如果是所有的,则可以用。
登录MySQL
[plain] view plain copy print
mysql -u root -p
添加新用户
允许本地 IP 访问 localhost, 127001
[plain] view plain copy print
create user 'test'@'localhost' identified by '123456';
允许外网 IP 访问
[plain] view plain copy print
create user 'test'@'%' identified by '123456';
刷新授权
[sql] view plain copy print
flush privileges;
为用户创建数据库
[sql] view plain copy print
create database test DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
为新用户分配权限
授予用户通过外网IP对于该数据库的全部权限
[sql] view plain copy print
grant all privileges on `testdb` to 'test'@'%' identified by '123456';
授予用户在本地服务器对该数据库的全部权限
[sql] view plain copy print
grant all privileges on `testdb` to 'test'@'localhost' identified by '123456';
刷新权限
[sql] view plain copy print
flush privileges;
退出 root 重新登录
[sql] view plain copy print
exit
用新帐号 test 重新登录,由于使用的是 % 任意IP连接,所以需要指定外部访问IP
1在数据库本机用使用cmd指令调出命令行窗口,再用sqlplus/assysdba登录到数据库中。并且用对要赋权限的表所有者连接数据库,否则后续赋权限会失败。
2创建由test123标识的用户测试;创建密码设置为test123的测试用户。
3授权测试用户的连接和资源权限。授予连接,资源到测试。
4指定表授权查询权限。授予用户选择。表测试。
5用新的登录数据库进行验证,我们会先尝试删除删除数据的功能,结果错误无法执行,说明我们添加的用户没有删除权限。
6然后验证select查询函数,成功找到指定的数据。创建一个新用户并指定查询权限函数的实现。对于没有权限的表的查询也会被拒绝。
指定数据库,需要有所有表查询权限和视图创建权限use [database]Grant select to [userName]GRANT CREATE VIEW TO [userName]
以上就是关于如何设置sybase数据库的用户权限全部的内容,包括:如何设置sybase数据库的用户权限、如何让mysql新建的用户只对自己创建的数据库拥有权限、mysql给用户 创建数据库的权限吗等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)