SQL Server проверяет, есть ли у вас доступ к базе данных - PullRequest
0 голосов
/ 27 мая 2010

Доброе утро,

Я подключился к своему SQL Server 2005 - и мне удалось вывести список всех баз данных на этом сервере. Теперь я хотел бы проверить каждую базу данных, чтобы узнать, есть ли у меня разрешение на просмотр этой базы данных.

Как бы я поступил об этом?

Большое спасибо, Joel

Ответы [ 4 ]

1 голос
/ 27 мая 2010

Что вы подразумеваете под просмотром базы данных?!

Вы можете использовать следующий запрос для отображения всех разрешений для текущей базы данных:

SELECT * FROM fn_my_permissions (NULL, 'DATABASE');
0 голосов
/ 28 января 2016

Как указала neslekkiM в комментариях к другому ответу, вы можете использовать эту строку при поиске списка баз данных:

SELECT name, has_dbaccess(name) 
FROM sys.databases
0 голосов
/ 27 мая 2010

Я думаю, вы хотите посмотреть на sys.database_permissions, где, я думаю, вы можете запросить эту информацию.

Смотрите здесь для получения дополнительной информации:
http://msdn.microsoft.com/en-us/library/ms188367.aspx

0 голосов
/ 27 мая 2010

Во-первых, вам нужно выяснить все имена на вашем сервере БД:

SELECT [name]
  FROM sys.databases;

Затем вам нужно будет выполнить следующую команду для каждой базы данных, чтобы получить разрешения:

USE databaseName;

SELECT *
  FROM fn_my_permissions(null, 'DATABASE')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...