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

Откуда:
Сообщений: 6
Добрый день!
Подскажите пожалуйста, какие права должны быть у пользователя для того, чтобы он мог через management studio зайти в базу и поменять ширину столбцов в любой таблице базе (базу назовем VRTSERVER), но без прав db_owner или "управление" на базу.
Пользователь sql (будем звать его vrt_user) на уровне SQL имеет права доступа - public. На уровне БД дала ему права data_reader+data_writer+execute, ну и естественно права на соединение к БД. Таких прав мало. На уровне базы дала права на изменение + создание таблиц, но доступ у пользователя всё равно только на чтение таблицы.
Изменение таблиц выполняется только в том случае, если на уровне базы у пользователя стоят права "управление" или db_owner. Такие права пользователю давать не хочу, работаем на MSSQL 2088R2 Express.
31 мар 16, 08:12    [18998524]     Ответить | Цитировать Сообщить модератору
 Re: Права доступа на редактирование таблиц в базе  [new]
Glory
Member

Откуда:
Сообщений: 104760
Lunalia
и поменять ширину столбцов

Что такое "ширина столбцов" ? И какой командой вы ее меняете ?

Lunalia
На уровне БД дала ему права data_reader+data_writer+execute, ну и естественно права на соединение к БД. Таких прав мало.

Эти права позволяют видеть и менять содержимое таблиц.
31 мар 16, 08:18    [18998533]     Ответить | Цитировать Сообщить модератору
 Re: Права доступа на редактирование таблиц в базе  [new]
Lunalia
Member

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

Не совсем точно наверно выразилась: есть некая таблица в базе, у нее есть атрибут типа varchar(35), мне нужно изменить длину столбца до 36.
Если пользователь обладает правами на базу: data_reader+data_writer+execute+соединение+изменение+создание таблиц+выборка+вставка+создать схему то у пользователя при попытке открыть таблицу на изменение выходит сообщение "Таблица .... установлена в режим только для чтения".
Изменение длины поля производится только после того, как на базу у пользователя появляются права "управление", но эти права давать нежелательно.
31 мар 16, 08:34    [18998563]     Ответить | Цитировать Сообщить модератору
 Re: Права доступа на редактирование таблиц в базе  [new]
Glory
Member

Откуда:
Сообщений: 104760
Lunalia
Не совсем точно наверно выразилась: есть некая таблица в базе, у нее есть атрибут типа varchar(35), мне нужно изменить длину столбца до 36.

И какой командой вы хотите это сделать ?

Lunalia
Если пользователь обладает правами на базу: data_reader+data_writer+execute+соединение+изменение+создание таблиц+выборка+вставка+создать схему то у пользователя при попытке открыть таблицу на изменение выходит сообщение "Таблица .... установлена в режим только для чтения".

"Открыть таблицу" - это за команда ?
31 мар 16, 08:39    [18998579]     Ответить | Цитировать Сообщить модератору
 Re: Права доступа на редактирование таблиц в базе  [new]
Lunalia
Member

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

Обращение не через команду а контекстным меню (столбец - изменить)(см. вложение).

К сообщению приложен файл. Размер - 16Kb
31 мар 16, 08:45    [18998588]     Ответить | Цитировать Сообщить модератору
 Re: Права доступа на редактирование таблиц в базе  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31439
Lunalia
Не совсем точно наверно выразилась: есть некая таблица в базе, у нее есть атрибут типа varchar(35), мне нужно изменить длину столбца до 36.
Если пользователь обладает правами на базу: data_reader+data_writer+execute+соединение+изменение+создание таблиц+выборка+вставка+создать схему то у пользователя при попытке открыть таблицу на изменение выходит сообщение "Таблица .... установлена в режим только для чтения".
Изменение длины поля производится только после того, как на базу у пользователя появляются права "управление", но эти права давать нежелательно.
Не совсем понимаю вашу терминологию.

Для изменения модели данных можно включить пользователя в роль либо db_owner, либо db_ddladmin.
31 мар 16, 08:45    [18998589]     Ответить | Цитировать Сообщить модератору
 Re: Права доступа на редактирование таблиц в базе  [new]
Lunalia
Member

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

так вот в том и заключается проблема, что db_owner давать нельзя
31 мар 16, 08:51    [18998607]     Ответить | Цитировать Сообщить модератору
 Re: Права доступа на редактирование таблиц в базе  [new]
Glory
Member

Откуда:
Сообщений: 104760
Lunalia
так вот в том и заключается проблема, что db_owner давать нельзя

Ознакомьтесь со списком всех встроенных ролей уровня базы данных
https://technet.microsoft.com/en-us/library/ms189121(v=sql.105).aspx
31 мар 16, 08:53    [18998611]     Ответить | Цитировать Сообщить модератору
 Re: Права доступа на редактирование таблиц в базе  [new]
Glory
Member

Откуда:
Сообщений: 104760
Lunalia
Обращение не через команду а контекстным меню (столбец - изменить)(см. вложение).

Все кликанья мышкой в контекстном меню есть команды, которые отправляются серверу.
Есть команда - есть статья хелпа о ней.
Есть статья хелпа - есть параграф Permissions в ней.
Есть параграф Permissions - есть описание того, какие права нужны.
31 мар 16, 08:56    [18998625]     Ответить | Цитировать Сообщить модератору
 Re: Права доступа на редактирование таблиц в базе  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31439
Lunalia
alexeyvg,

так вот в том и заключается проблема, что db_owner давать нельзя
Ну, я написал и про db_ddladmin.

Ещё можно использовать инструкцию GRANT
Например, GRANT ALTER TABLE TO Вася;

Так вы сможете давать права совсем гранулярно, по чуть-чуть. Что бы через годик окончательно запутаться, и в итоге махнуть рукой и всем давать сисадмина :-)
31 мар 16, 09:04    [18998653]     Ответить | Цитировать Сообщить модератору
 Re: Права доступа на редактирование таблиц в базе  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31439
Glory
Есть параграф Permissions - есть описание того, какие права нужны.
Справедливости ради, хелп сейчас не тот, что был раньше, когда трава была зеленее, а лестницы совсем пологие и короткие :-)

Вот в инструкции ALTER TABLE указано, что "Требуется разрешение ALTER на таблицу", что в общем понятно из названия команды.
Однако это разрешение можно получить наверное сотней разных способов. Нужно было поподробнее, и со ссылочками на темы.
Т.е. вообще говоря система безопасности довольно сложна, и её нужно учить, много читать, это не тот случай, когда достаточно одной статьи.
Хотя ТС и одной не читала, чувствуется :-)
31 мар 16, 09:09    [18998663]     Ответить | Цитировать Сообщить модератору
 Re: Права доступа на редактирование таблиц в базе  [new]
Lunalia
Member

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

ALter на таблицу есть.
Пробовала давать права ALTER AUTHORIZATION ON dbo.таблица TO vrt_user, но в этом случае каждый раз права при пересоздании таблицы будут исчезать.
31 мар 16, 09:34    [18998774]     Ответить | Цитировать Сообщить модератору
 Re: Права доступа на редактирование таблиц в базе  [new]
iljy
Member

Откуда:
Сообщений: 8711
Lunalia
alexeyvg,

ALter на таблицу есть.
Пробовала давать права ALTER AUTHORIZATION ON dbo.таблица TO vrt_user, но в этом случае каждый раз права при пересоздании таблицы будут исчезать.


Студия в конструкторе таблиц требует сильно больше прав (никогда не разбирался какие, может есть энтузиасты). Меняйте тип столбца командой ALTER TABLE ... ALTER COLUMN.
31 мар 16, 09:39    [18998803]     Ответить | Цитировать Сообщить модератору
 Re: Права доступа на редактирование таблиц в базе  [new]
o-o
Guest
Lunalia
alexeyvg,
ALter на таблицу есть.

alter может и есть, только не у того, кто таблицу изменяет
31 мар 16, 09:41    [18998813]     Ответить | Цитировать Сообщить модератору
 Re: Права доступа на редактирование таблиц в базе  [new]
Glory
Member

Откуда:
Сообщений: 104760
Lunalia
ALter на таблицу есть.

Вы уже узнали команду ?

Lunalia
Пробовала давать права ALTER AUTHORIZATION ON dbo.таблица TO vrt_user,

Зачем ?

Lunalia
но в этом случае каждый раз права при пересоздании таблицы будут исчезать.

А как бы по-вашму могли сохранятся права при удалении объекта в процессе пересоздания ?
31 мар 16, 09:42    [18998816]     Ответить | Цитировать Сообщить модератору
 Re: Права доступа на редактирование таблиц в базе  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
автор
А как бы по-вашму могли сохранятся права при удалении объекта в процессе пересоздания ?


CREATE TABLE tablename
...

GO

GRANT ALTER ON tablename TO role
31 мар 16, 09:46    [18998836]     Ответить | Цитировать Сообщить модератору
 Re: Права доступа на редактирование таблиц в базе  [new]
Lunalia
Member

Откуда:
Сообщений: 6
Glory,
ALTER AUTHORIZATION нужен для возможности доступа к временной таблице, иначе пользователь к ней не имеет доступа.
Посмотрела, права к данной таблице не исчезают при следующем изменении под данным пользователем.
Вопрос думаю решен.
31 мар 16, 09:49    [18998846]     Ответить | Цитировать Сообщить модератору
 Re: Права доступа на редактирование таблиц в базе  [new]
Glory
Member

Откуда:
Сообщений: 104760
Lunalia
ALTER AUTHORIZATION нужен для возможности доступа к временной таблице, иначе пользователь к ней не имеет доступа.

Вы несете бред
31 мар 16, 09:50    [18998848]     Ответить | Цитировать Сообщить модератору
 Re: Права доступа на редактирование таблиц в базе  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
Lunalia
Glory,
ALTER AUTHORIZATION нужен для возможности доступа к временной таблице, иначе пользователь к ней не имеет доступа.
WAT? какэта
31 мар 16, 09:50    [18998851]     Ответить | Цитировать Сообщить модератору
 Re: Права доступа на редактирование таблиц в базе  [new]
o-o
Guest
какой-то бред в каждом посте

К сообщению приложен файл. Размер - 50Kb
31 мар 16, 09:53    [18998866]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить