TSQL-запрос для проверки прав доступа и объекта существует - PullRequest
1 голос
/ 22 июля 2010

Я пишу запрос, который будет возвращать

  1. , если в базе данных существует таблица или сохраненный процесс
  2. , если конкретной роли были назначены разрешения на выполнение для выполнения этого конкретного сохраненногоproc.

Полагаю, мне нужно запросить базу данных master и пролистать ее, чтобы добраться до базы данных и таблицы или хранимого proc, который я ищу.Как я могу получить 'true / false', если разрешения на выполнение были назначены определенной роли для этого объекта?

1 Ответ

8 голосов
/ 22 июля 2010
USE YourDatabase

/*To find out if it exists*/

SELECT OBJECT_ID('dbo.spFoo') /*Will be NULL if it doesn't exist or you don't have 
                                permission to see the object*/

/*To find out the permissions on it take a look at the following system views*/

select * from sys.database_permissions p
inner   JOIN sys.database_principals dp
   on     p.grantee_principal_id = dp.principal_id
   where major_id=object_id('dbo.spFoo')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...