存档
以将dbo创建的所有表授予相应权限给普通用户userA为例。
将dbo拥有的表的相应权限(select/insert/update/delete)授予给普通用户userA,使用以下SQL生成授权语句:
select 'grant select on ' + user_name(uid) + '.' + name + ' to userA' from sysobjects where type='U' and uid=user_id('dbo')
union all
select 'grant insert on ' + user_name(uid) + '.' + name + ' to userA' from sysobjects where type='U' and uid=user_id('dbo')
union all
select 'grant update on ' + user_name(uid) + '.' + name + ' to userA' from sysobjects where type='U' and uid=user_id('dbo')
union all
select 'grant delete on ' + user_name(uid) + '.' + name + ' to userA' from sysobjects where type='U' and uid=user_id('dbo')
查看某张表的上用户的权限情况:
sp_helprotect table_name
查看用户所拥有的对象权限情况:
sp_helprotect user_name
Sybase ASE在15.0.2后支持用户自定义函数,但是只能返回标量值,且调用的时候必须在函数名前加创建者的用户名,这一点很不友好哦。数据库的dbowner默认就有创建函数的权限。普通的用户默认不具有创建函数的权限。
用户escourt4创建自定义函数的时候报下面的错误:
Msg 10331, Level 14, State 1:
Server 'TEST', Procedure 'datefmt_lzf', Line 4:
CREATE FUNCTION permission denied, database ultranms2, owner dbo
但是Sybase自动的客户端工具Sybase Central中却没有能够授予创建函数权限的地方。
只能授予创建缺省值(create default),创建过程(create procedure),创建规则(create rule),创建表(create table),创建视图(create view),创建加密密钥的权限。