2013-04-25 3 views
1

Какова наилучшая практика создания пользователя только для чтения для конкретной базы данных?Лучший способ создать пользователя SQL с разрешениями только для чтения?

Я создал нового пользователя и предоставил роль db_datareader, однако этот пользователь все еще имеет доступ к master db и другим системным базам данных. это нормально? или я должен лишить доступ к некоторым системным таблицам/базам данных, чтобы сделать его более безопасным?

Спасибо.


Хорошо, если я создаю нового пользователя, у него будут какие-либо разрешения по умолчанию, которые я должен отрицать? если я ~ создать Войти ~ создать пользователя для входа в систему .. ~ грант EXECUTE для пользователя

будет пользователь только у EXECUTE разрешения или он будет иметь дополнительные разрешения, а также для активной базы данных?

ответ

0

Привет, я считаю, что пользователь может просматривать другую базу данных в проводнике объектов.

CREATE LOGIN me with password = 'me', check_policy = off 

sp_changedbowner 'me' 
GO 

USE MASTER 
GO 


DENY VIEW ANY DATABASE TO me 
GO 
0

Ну, вы можете использовать denywrite в качестве опции роли. Пользователь должен «видеть» мастер, потому что мастер содержит список баз данных, к которым он будет подключен, но у него будут только гостевые прилавки. Затем вы можете запретить доступ к другим конкретным базам данных. AFAIK ему не нужно видеть tempdb или msdb как его механизм SQL, который обращается к этим

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