Почему пользователь не может создавать таблицы в базе данных (они владеют) с помощью сценария?Вопрос разрешения SP возможно? - PullRequest
0 голосов
/ 25 января 2011

Я предоставил пользователю разрешение на создание баз данных.Им удалось создать базу данных, которой они теперь владеют, но они получают ошибки при запуске сценария для создания таблиц.На данный момент у меня мало информации (извините!), Поэтому я не могу сам ее диагностировать, но, возможно, кто-то более опытный в разрешениях базы данных мог бы помочь.

Я предполагаю, что они используютнекоторые встроенные хранимые процедуры, и это своего рода проблема с разрешениями.Я предположил, что если они могут создать / владеть базой данных, они могут делать с ней все, что захотят, но должно быть что-то, к чему у них нет доступа.

Любой совет?Нужно ли предоставлять им разрешения помимо «создания базы данных»?Есть ли какой-то общий / стандартный набор хранимых процедур, к которым они должны иметь доступ?Им нужен доступ к «основной» базе данных?

1 Ответ

1 голос
/ 25 января 2011

«Владение» базой данных на уровне сервера отличается от «db_owner» в базе данных

После создания базы данных запустите

CREATE USER foo FOR LOGIN foo
EXEC sp_addrolemember 'db_owner', 'foo'

См. СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ для получения дополнительной информации

Редактировать: полагаться на привязку dbo любого владельца от CREATE DATABASE ненадежно: установить разрешения явно или использовать sp_changedbowner

...