Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Убрать права на DDL в рамках всей базы / 3 сообщений из 3, страница 1 из 1
18.07.2019, 18:06
    #39838900
Oblom
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Убрать права на DDL в рамках всей базы
Добрый день!
Как можно реализовать сабж?

Пытался сделать через роли.
Например классическая роль db_read_write_execute реализуется так:
Код: sql
1.
2.
3.
4.
5.
6.
7.
CREATE ROLE [db_read_write_execute] AUTHORIZATION [dbo]
GO
GRANT EXECUTE TO db_read_write_execute
GRANT SELECT TO db_read_write_execute
GRANT UPDATE TO db_read_write_execute
GRANT INSERT TO db_read_write_execute
GRANT DELETE TO db_read_write_execute



Но попытка закрыть хотя бы LTER объектов через
Код: sql
1.
2.
3.
CREATE ROLE NoDDL AUTHORIZATION [dbo]
GO
DENY ALTER TO NoDDL


потерпела неудачу, пользователь из этой роли как менял хранимку, так и меняет.

Как можно правильно решить эту задачу?
...
Рейтинг: 0 / 0
18.07.2019, 18:10
    #39838902
msLex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Убрать права на DDL в рамках всей базы
OblomДобрый день!
Как можно реализовать сабж?

Пытался сделать через роли.
Например классическая роль db_read_write_execute реализуется так:
Код: sql
1.
2.
3.
4.
5.
6.
7.
CREATE ROLE [db_read_write_execute] AUTHORIZATION [dbo]
GO
GRANT EXECUTE TO db_read_write_execute
GRANT SELECT TO db_read_write_execute
GRANT UPDATE TO db_read_write_execute
GRANT INSERT TO db_read_write_execute
GRANT DELETE TO db_read_write_execute




Но попытка закрыть хотя бы LTER объектов через
Код: sql
1.
2.
3.
CREATE ROLE NoDDL AUTHORIZATION [dbo]
GO
DENY ALTER TO NoDDL



потерпела неудачу, пользователь из этой роли как менял хранимку, так и меняет.

Как можно правильно решить эту задачу?

Если пользователь является владельцем базы, у него будет доступ в любом случае.
...
Рейтинг: 0 / 0
23.07.2019, 09:49
    #39840315
Yasha123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Убрать права на DDL в рамках всей базы
msLexOblomДобрый день!
Как можно реализовать сабж?

Пытался сделать через роли.
Например классическая роль db_read_write_execute реализуется так:
Код: sql
1.
2.
3.
4.
5.
6.
7.
CREATE ROLE [db_read_write_execute] AUTHORIZATION [dbo]
GO
GRANT EXECUTE TO db_read_write_execute
GRANT SELECT TO db_read_write_execute
GRANT UPDATE TO db_read_write_execute
GRANT INSERT TO db_read_write_execute
GRANT DELETE TO db_read_write_execute




Но попытка закрыть хотя бы LTER объектов через
Код: sql
1.
2.
3.
CREATE ROLE NoDDL AUTHORIZATION [dbo]
GO
DENY ALTER TO NoDDL



потерпела неудачу, пользователь из этой роли как менял хранимку, так и меняет.

Как можно правильно решить эту задачу?

Если пользователь является владельцем базы, у него будет доступ в любом случае.
он не овнеру базы пытается денаить,
а юзеру dbo.
юзер dbo это тот, в кого мапится sysadmin.
денаить что-то сисадмину бессмысленно,
ибо его права просто не проверяются.

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

BOLThe dbo User Account
The dbo, or database owner, is a user account that has implied permissions to perform all activities in the database.
Members of the sysadmin fixed server role are automatically mapped to dbo.
Server and Database Roles in SQL Server
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Убрать права на DDL в рамках всей базы / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]