sybase数据库中怎样创建角色并授予权限

创建数据库角色,并授予访问通信数据库的读、写权限,并对数据库中的表数据进行修改。
将角色赋予一个指定的用户,建立用户和角色联系。
再次用此用户访问通信数据库,并对数据库中的表数据进行修改。

这个问题别人已经问过,且我已经回答了,你可以参考一下:

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表。

参考资料:http://z.baidu.com/question/136498392.html

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-09-30
这个问题别人已经问过,且我已经回答了,你可以参考一下:

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表。