powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Убрать права на DDL в рамках всей базы
3 сообщений из 3, страница 1 из 1
Убрать права на DDL в рамках всей базы
    #39838900
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
Убрать права на DDL в рамках всей базы
    #39838902
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Убрать права на DDL в рамках всей базы
    #39840315
Фотография Yasha123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
3 сообщений из 3, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Убрать права на DDL в рамках всей базы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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