Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Доступ к своей схеме  [new]
Guest0011
Guest
Добрый день!
Как дать пользователю полный доступ к своей схеме (создание/изменение объектов объектов и тп )
и ограничить доступ к остальным схемам БД, например только по чтению?
26 авг 14, 19:54    [16496500]     Ответить | Цитировать Сообщить модератору
 Re: Доступ к своей схеме  [new]
Glory
Member

Откуда:
Сообщений: 104751
Guest0011
Как дать пользователю полный доступ к своей схеме

К своей это к той, которую он создал уже ? Или к какой ?

Guest0011
и ограничить доступ к остальным схемам БД, например только по чтению?

Изначально нет никаких прав. Поэтому и нечего ограничивать.
26 авг 14, 20:04    [16496555]     Ответить | Цитировать Сообщить модератору
 Re: Доступ к своей схеме  [new]
Guest0011
Guest
Glory, приветствую!
Задача такая - есть БД с уже созданными в ней объектами.
Мне нужно завести пользователя и создать для него схему так, что бы он мог создавать/удалять объекты только в своей схеме.
К остальным объектам БД имел доступ только по чтению.
26 авг 14, 20:09    [16496582]     Ответить | Цитировать Сообщить модератору
 Re: Доступ к своей схеме  [new]
Glory
Member

Откуда:
Сообщений: 104751
Guest0011
Мне нужно завести пользователя и создать для него схему так, что бы он мог создавать/удалять объекты только в своей схеме.

Ну так создайте схему. И сделайте пользователя ее владельцем

Guest0011
К остальным объектам БД имел доступ только по чтению.

Как вы себе представляете право на чтение для процедуры или функции ?
26 авг 14, 20:36    [16496687]     Ответить | Цитировать Сообщить модератору
 Re: Доступ к своей схеме  [new]
Guest0011
Guest
Создаю схему, делаю пользователя владельцем.
Создать таблицу он не может.
Для того, что бы он мог создать таблицу, ему нужно дать db_owner на базу
26 авг 14, 20:52    [16496737]     Ответить | Цитировать Сообщить модератору
 Re: Доступ к своей схеме  [new]
Glory
Member

Откуда:
Сообщений: 104751
Guest0011
Создать таблицу он не может.

И как же он это делает ?
26 авг 14, 20:56    [16496750]     Ответить | Цитировать Сообщить модератору
 Re: Доступ к своей схеме  [new]
o-o
Guest
Guest0011
Создаю схему, делаю пользователя владельцем.
Создать таблицу он не может.
Для того, что бы он мог создать таблицу, ему нужно дать db_owner на базу


не, ну сделать его владельцем схемы недостаточно.
открываетм в хэлпе CREATE TABLE, CREATE FUNCTION и т.д.
и читаем раздел PERMISSIONS:

Requires CREATE TABLE permission in the database and ALTER permission on the schema in which the table is being created
Requires CREATE FUNCTION permission in the database and ALTER permission on the schema in which the function is being created.
...

т.е. кроме CONTROL/ALTER на схему, надо еще иметь соответствующий CREATE <object> в базе.
но уж давать db_owner-а жирновато будет.

сделав владельцем схемы, CONTROL на схему выдали.
теперь выдайте права в базе, все нужные CREATE-ы:
GRANT CREATE TABLE TO <User>;
GRANT CREATE FUNCTION TO <User>;
GRANT CREATE VIEW TO <User>;
GRANT CREATE PROCEDURE TO <User>;
GRANT CREATE TYPE TO <User>;

и все.
<User> создавать объекты в других схемах не сможет, т.к. на них не выданы ни ALTER, ни CONTROL.

по желанию можно выдать SELECT на другие схемы:
grant select on schema::dbo to <User>
27 авг 14, 01:27    [16497635]     Ответить | Цитировать Сообщить модератору
 Re: Доступ к своей схеме  [new]
Guest0011
Guest
o-o, спасибо получилось.
27 авг 14, 12:16    [16499356]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить