Пользователь не может просматривать базу данных

версия: SQL Server 2008 R2

Я предоставил пользователю возможность ВЫПОЛНЯТЬ и ВЫБРАТЬ для БД. Однако при входе в SSMS они не видят БД, для которой у них есть эти разрешения. Каков минимальный уровень разрешений, который они должны иметь для просмотра БД?

Логин является частью роли публичного сервера, а EXECUTE и SELECT находятся на уровне db.

Спасибо как всегда.

S


person scarpacci    schedule 02.06.2011    source источник


Ответы (2)


Вы можете попробовать предоставить право VIEW DEFINITION.

grant view definition to _user

http://msdn.microsoft.com/en-us/library/ms187113.aspx

С уважением

Петр

person Piotr Rodak    schedule 02.06.2011
comment
Привет @Piotr, я пробовал, но когда я вхожу в систему с учетной записью, я все еще не вижу БД? - person scarpacci; 02.06.2011
comment
Итак, когда вы входите в систему с этой учетной записью, что вы видите? вы можете GRANT CONNECT _database к _yourlogin, возможно, это причина. - person Piotr Rodak; 02.06.2011
comment
Я вижу только tempdb и master dbs. Я считаю, что у него есть привилегия подключения к этой базе данных. - person scarpacci; 02.06.2011
comment
Когда вы подключаетесь к базе данных со своей учетной записью db_owner/sa, вы видите пользователя в sys.database_principals? Если нет, запустите CREATE USER _user из логина [validloginname или windows] - person Piotr Rodak; 02.06.2011

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

use [master]
GO
GRANT VIEW ANY DATABASE TO [public] AS [sa]
GO
person Emrah Saglam    schedule 22.03.2018