2010-11-25 5 views

ответ

5

Это зависит от формы, которую вы хотите, чтобы данные в.

  • Если вы пишете SQL для некоторых внутренних целей, и вам нужна эта информация, как данные для этого, ответ Колчанов является верный.
  • Если вы просто выполняете функцию DBA, то любое количество DBA инструментов с графическим интерфейсом (SybaseCentral поставляется с компакт-диском; DBArtisan намного лучше) предоставить эту информацию с помощью окна проводника и щелкает
    • Если у вас есть только на основе характера доступа, используйте
      sp_helprotect proc_name

Link to Sybase Online Manuals

Затем перейдите к: Adaptive Server Enterprise 15.5/Справочное руководство: Процедуры и следуйте за проводником.

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

3

Если бы я хотел, чтобы проверить разрешения для объекта «whatever_ [таблица | процедуры]», я бы выполнить следующий запрос:

Пример для «любой» быть таблица

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 

Пример «независимо от того, что» является хранимой процедурой

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