2009-04-17 6 views
3

У меня есть один пользователь в моей базе данных, и я хочу предоставить ему разрешение читать только один вид, ничего больше, никаких таблиц, ничего.Предоставить разрешение только на просмотр

Как это сделать?

Большое спасибо.

PS: Я использую MS SQL Server 2005

+0

Какие СУБД вы используете? –

ответ

7
USE DB1; 
GRANT SELECT ON OBJECT:: View1 TO JohnDoe; 
GO 

См GRANT Object Permissions другие примеры предоставления разрешения

+0

Я сделал это. Тем не менее, я все еще получаю разрешение «SELECT» на объект »для базового объекта. Вход a является членом публичной роли и имеет разрешение «Выбрать» для представления. Я не думал, что мне нужно добавить разрешение на базовые объекты при предоставлении разрешения на просмотр? – MrEdmundo

+0

ссылка «Разрешения на предоставление прав объекта» укажите это и убедитесь, что у вас есть права администратора – TStamper

2

Попробуйте это:

GRANT SELECT ON whatever_your_view_is_called TO bob_or_whatever_his_name_is 
+0

Два вопроса: У нового пользователя нет доступа к любому объекту внутри базы данных? Другие пользователи имеют доступ к новому представлению? Я хочу, чтобы к нему был доступен только новый пользователь. – rpf

+1

По умолчанию никто, кроме «владельца базы данных (dbo)», не имеет доступа ни к чему, если только вы, как dbo, специально не предоставляете доступ. –

0

Это довольно просто сделать с пользовательский интерфейс Enterprise Manager или код SQL, размещенный несколькими другими.

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