获取sybase中存储过程的权限

时间:2010-11-25 08:08:35

标签: sybase-ase

如何在sybase中获取存储过程的授予权限?

3 个答案:

答案 0 :(得分:5)

这取决于您想要该信息的表单。

  • 如果您出于某种内部目的而编写SQL,并且需要该信息作为数据,那么Kolchanov的答案是正确的。
  • 如果您只是在执行DBA功能,那么任何数量的DBA GUI工具(Sybase随附CD; DBArtisan要好得多)通过资源管理器窗口和点击提供该信息
    • 如果您只有基于角色的访问权限,请使用
      sp_helprotect proc_name

Link to Sybase Online Manuals

然后转到:Adaptive Server Enterprise 15.5 /参考手册:过程,并按照资源管理器进行操作。

答案 1 :(得分:3)

如果我想检查对象“whatever_ [table | procedure]”的权限,我会运行以下查询:

作为表的“无论”的例子

Displaying result for:
---------------------
select permission = a.name
from master.dbo.spt_values a
   , master.dbo.spt_values b
   , sysprotects p
   , sysobjects  o
where a.type = "T"
and   a.number = p.action
and   b.type = "T"
and   b.number = (p.protecttype + 204)
and   o.id = p.id
and   o.name = 'whatever_table'

permission                   
---------------------------- 
References                   
Select                       
Insert                       
Delete                       
Update                       

5 Row(s) affected

“what”是存储过程的示例

Displaying result for:
---------------------
select permission = a.name
from master.dbo.spt_values a
   , master.dbo.spt_values b
   , sysprotects p
   , sysobjects  o
where a.type = "T"
and   a.number = p.action
and   b.type = "T"
and   b.number = (p.protecttype + 204)
and   o.id = p.id
and   o.name = 'whatever_procedure'

permission                   
---------------------------- 
Execute                      

1 Row(s) affected

答案 2 :(得分:1)

Adaptive Server Enterprise 15.5>参考手册:表>系统表

sysprotects中

sysprotects包含有关已授予用户,组和角色的权限的信息。

http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc36274.1550/html/tables/X16615.htm