2016-03-02 3 views
1

как можно увидеть 'sa' логин в связи с логином, который предоставил только для чтения некоторых просмотров? Наверное, возможно, что-то редактировать, но может видеть. А также может видеть список баз данных, но не могу открыть. Все в SQL Management Studio.Почему логин без прав может видеть 'sa' логин?

create login YourTpvLogin with password = 'enter new password here' 
go 

create user YourTpvUser for login YourTpvLogin 
go 

grant select on YourView to YourTpvUser 

Благодарим вас за разъяснение или способ его устранения.

+0

Можете ли вы объяснить, что вы здесь задаете? Я вовсе не иду за тобой. –

+0

«Посмотри», каким образом? Как в sa имя входа в список логинов в SSMS? Является ли признание того, что для входа в систему sa существует риск безопасности, на ваш взгляд? –

ответ

2

Ok ... Прежде всего Every SQL Server login belongs to the public server role. Далее - The public server role is granted VIEW ANY DATABASE permission, что означает, что a login that is granted this permission can see metadata that describes all databases включая master базу данных, которая, в свою очередь records all the system-level information for a SQL Server system, включая информацию о сервере имен входа SQL и sa входа в систему, конечно, не является исключением.

Итак ... любой новый логин может видеть все базы данных и логины, но не может их изменять.

Возможное «решение» для скрытия баз данных - deny a login the VIEW ANY DATABASE permission.

Чтобы ограничить видимость метаданных базы данных, запретите вход в систему ПРОСМОТРЕТЬ ЛЮБОЙ . После того, как это разрешение будет отклонено, логин может видеть только только метаданные для master, tempdb и баз данных, которыми владеет логин.

И ... вы не можете полностью скрыть sa логин, потому что каждый Логин должен быть в состоянии прочитать метаданные сервера из базы данных master.

+0

Большое спасибо. Хорошее объяснение. – user181685

Смежные вопросы