Возможно ли настроить SQL Server, чтобы предоставить разработчикам доступ только для чтения к содержимому хранимых процедур в нашей производственной базе данных?Доступ только к содержимому хранимой процедуры
ответ
Даруй им VIEW DEFINITION
привилегию на эти проки, смотрите здесь http://msdn.microsoft.com/en-us/library/ms175808.aspx
Существует
области сервера
области базы данных
сфера Схема
Отдельные лица
Вы также можете использовать запрос для создания сценария. так что если у вас есть пользователь Bob
select 'GRANT VIEW DEFINITION ON ' + quotename(specific_schema)
+ '.' + quotename(specific_name)
+ ' TO ' + 'BOB'
from INFORMATION_SCHEMA.routines
where routine_type = 'PROCEDURE'
Это даст вам что-то вроде этого, что вы можете запустить
GRANT VIEW DEFINITION ON [dbo].[aspnet_RegisterSchemaVersion] TO BOB
GRANT VIEW DEFINITION ON [dbo].[aspnet_CheckSchemaVersion] TO BOB
GRANT VIEW DEFINITION ON [dbo].[aspnet_Applications_CreateApplication] TO BOB
Пример делать на уровне области схемы для DBO.
субсидия определение представления на схеме :: [DBO] Бобу
мне нужно предоставить доступ к учетной записи домена .. синтаксис для этого был
субсидия определение представления на схеме: : [DBO] в "домен \ ЛПП"
Мой вариант для всех процедур БД:
select 'GRANT VIEW DEFINITION ON [' + schema_name(schema_id) + '].[' + name +
'] TO ' + '[domain\username]'
from sys.all_objects
where type_desc = 'SQL_STORED_PROCEDURE'
and schema_id <> schema_id('sys')
Хотя я знаю, что это уже поздно в ответ на вопрос, но для тех людей, которые пришли сюда, чтобы найти ответ (так же, как я сделал несколько минут назад), по крайней мере, в студии управления SQL 2014 вы можете редактировать учетную запись пользователя и отредактируйте разрешения в области SECURABLES и отметьте все поля в VIEW, к которым вы хотите иметь доступ.
Выполнение вышеуказанного без необходимости запуска скриптов.
- 1. Доступ к Возвращаемое значение из хранимой процедуры
- 2. Доступ к значениям Apex_application.g_fXX из хранимой процедуры
- 3. Доступ к содержимому HttpResponseMessage
- 4. доступ к содержимому массива
- 5. доступ к содержимому списка
- 6. Доступ к содержимому iFrame?
- 7. Доступ к содержимому файла
- 8. Доступ к содержимому вложенного Iframe
- 9. Вызов хранимой процедуры из другой хранимой процедуры
- 10. Доступ к результирующему набору хранимой процедуры, выполняемой с использованием SqlDataSource.Select
- 11. Доступ к внешнему содержимому iframe
- 12. Доступ к содержимому IQueryable/System.Collections.Generic.List?
- 13. Доступ к виртуальному содержимому DOM
- 14. Доступ к содержимому запроса БД
- 15. C++: доступ к содержимому указателя
- 16. доступ к содержимому загруженного swf
- 17. Jetty.xml доступ к статическому содержимому
- 18. Ошибка Доступ к содержимому массива
- 19. Доступ к содержимому SMS iPhone
- 20. Изменение определителя хранимой процедуры
- 21. хранимой процедуры
- 22. Как получить доступ к параметрам внутри хранимой процедуры Netezza?
- 23. Доступ к Sql FILESTREAM из хранимой процедуры CLR
- 24. Доступ к LAST_INSERT_ID() из php после вызова хранимой процедуры
- 25. Доступ к другому SQL Server с помощью хранимой процедуры
- 26. Доступ к стеку ошибок из обработчика хранимой процедуры
- 27. Доступ к базе данных Oracle из хранимой процедуры SQL Server.
- 28. Выполнение хранимой процедуры, но не доступ к данным в asp.net
- 29. Доступ к столбцам функции SQL-таблицы из хранимой процедуры SELECT
- 30. Невозможно получить доступ к параметру OUT хранимой процедуры
Есть ли альтернативы для установки его на хранимую процедуру? Я надеялся на метод, который не требовал изменения каждого proc. – adam0101
см. Обновленный ответ – SQLMenace
Awesome. Спасибо – adam0101