Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Какие права требуется предоставить?  [new]
DaniilSeryi
Member

Откуда:
Сообщений: 1965
Дано: БД (B), схема БД (пусть будет S), и роль базы данных (R).
Требуется, чтобы пользователи, входящие в роль R, могли создавать, изменять, и удалять таблицы в схеме S, и только в ней; а также вставлять, удалять и читать данные из всех таблиц схемы S - как уже созданных, так и тех, что будут созданы в будущем - без предоставления им дополнительных прав после создания каждой новой таблицы.
Вопрос: какие права требуется предоставить роли R?
Примечание: предоставленные права не должны влиять на существующие права пользователей на доступ к другим схемам и таблицам.
20 авг 15, 11:15    [18044538]     Ответить | Цитировать Сообщить модератору
 Re: Какие права требуется предоставить?  [new]
felix_ff
Member

Откуда: Moscow
Сообщений: 1836
DaniilSeryi,


grant select, update, delete, view definition on SCHEMA :: S TO database_something_role
20 авг 15, 11:23    [18044583]     Ответить | Цитировать Сообщить модератору
 Re: Какие права требуется предоставить?  [new]
DaniilSeryi
Member

Откуда:
Сообщений: 1965
felix_ff,

Спасибо за помощь.
Как показала практика - для закрытия поставленных задач роли нужно дать ещё control на схему и create table.
20 авг 15, 12:10    [18044942]     Ответить | Цитировать Сообщить модератору
 Re: Какие права требуется предоставить?  [new]
felix_ff
Member

Откуда: Moscow
Сообщений: 1836
DaniilSeryi,

сори неправильно прочел трактовку задачи, для изменения объектов относящихся к схеме дайте право ALTER на схему.

права типа CONTROL разрешает делать со схемой все что только возможно
CONTROL
Предоставляет возможности, схожие с владением.
Имеющий это разрешение получает все установленные разрешения на защищаемую сущность.
Участник, получивший разрешение CONTROL, может также предоставлять разрешения на защищаемую сущность другим участникам.
Так как в SQL Server используется иерархическая модель безопасности, разрешение CONTROL на определенную область неявно 
включает разрешение CONTROL на все защищаемые объекты в пределах данной области.
Например, разрешение CONTROL на базу данных неявно предполагает все разрешения на базу данных,
 все разрешения на все сборки в базе данных, все разрешения на все схемы в базе данных, а также все разрешения на объекты в пределах всех схем базы данных.

https://msdn.microsoft.com/ru-ru/library/ms191291(v=sql.120).aspx
20 авг 15, 12:30    [18045053]     Ответить | Цитировать Сообщить модератору
 Re: Какие права требуется предоставить?  [new]
DaniilSeryi
Member

Откуда:
Сообщений: 1965
felix_ff,

Ну... Роль и должна делать со схемой что угодно - создавать/изменять/удалять таблицы (Create/Alter/Drop Table), равно как и просмотр определений (view defenition), читать/удалять/вставлять данные из/в таблиц схемы (select/insert/delete).

Главное - отсутствие прав изменять/удалять таблицы других схем и читать/удалять/вставлять данные других схем, если нет ранее выданных прав.

Поэтому control на схему или назначение роли владельцем схемы дадут равно отличный результат, как я понимаю.
20 авг 15, 12:46    [18045138]     Ответить | Цитировать Сообщить модератору
 Re: Какие права требуется предоставить?  [new]
o-o
Guest
по-моему, в таких случаях стоит открыть БОЛ на CREATE TABLE.
найти раздел PERMISSIONS.
и выдать то, о чем там пишут:
Permissions
Requires CREATE TABLE permission in the database and ALTER permission on the schema in which the table is being created.

If any columns in the CREATE TABLE statement are defined to be of a CLR user-defined type, either ownership of the type or REFERENCES permission on it is required.

If any columns in the CREATE TABLE statement have an XML schema collection associated with them, either ownership of the XML schema collection or REFERENCES permission on it is required.
20 авг 15, 12:52    [18045206]     Ответить | Цитировать Сообщить модератору
 Re: Какие права требуется предоставить?  [new]
o-o
Guest
конечно, контрол покроет все ваши желания относительно схемы
(но для создания таблиц нужен отдельно CREATE TABLE все равно),
главное, чтоб лишнего не выдалось.
у обладателя контрола на схему будет:
SELECT
INSERT
UPDATE
DELETE
REFERENCES
EXECUTE
VIEW CHANGE TRACKING
VIEW DEFINITION
ALTER
TAKE OWNERSHIP
CONTROL
20 авг 15, 12:59    [18045258]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить