Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
teo609 Member Откуда: Рязань Сообщений: 140 |
Здравствуйте, господа инженеры. Есть сервер Microsoft SQL Server 2008 R2 (SP3) - 10.50.6000.34 (X64). Есть две базы на нем, основная, и тестовая, периодически восстанавливаемая из основной. Есть на сервере два логина и привязанные к ним две группы доменных пользователей, с виндовой авторизацией, редакторы и админы. (Задать дефолтную схему этим логинам на вкладке User Mapping студия не дает - говорит не положено для групповой доменной авторизации) В каждой базе есть два пользователя, редактор и админ, привязанных к этим логинам сервера. В каждой базе есть Datebase Role roleAdmin, в которую входит пользователь базы админ. В свойствах базы этой роли права CreateTable и CreateProcedure проставлены (галочками). Группа редакторы есть давно, в ней часть пользователей домена, они давно работают без проблем. Группа админы добавлена недавно, и сейчас тестируется. Перед добавлением произошло очередное восстановление основной базы в тестовую, поэтому они практически идентичны. Мой доменный логин состоит в обеих группах, и из приложения своего тестового я к базам подключаюсь им. Пользователи работают в группе редакторы, и не создают ни таблиц ни ХП. В админах я пока один юзер, и пытаюсь создать таблицу и ХП в тестовой функции. Создаются они запросами, подобными тем, что я запускал от sa и они работали, создавали объекты в схеме dbo. CREATE TABLE testTable (key_int int, bit_fld1 bit, ...) CREATE PROC testProc1 @key_int int... Штука в том, что одинаковые (во всем что могу проверить) базы реагируют на эти запросы по-разному. В одной из них запросы выполняются. При этом создается в Security\Users юзер названный как мой DomainName\UserLogin, и с таким же именем схема. Как объекты этой схемы создаются и таблица и ХП. В другой базе запрос на создание таблицы не выполняется с ошибкой The default schema does not exist. Попытка выяснить в чем же разница между базами привела к сравнению их с помощью SqlSchemaCompare из MS Visual Studio 2015. Никакой особой разницы между базами таким способом не выявлено. В той базе, в которой запросы выполнялись, у схемы есть свойство Authorizer, в GUI нигде такого не видел. (картинка) Вопрос в том, как лучше реализовать возможность создавать таблицы для админов. Чтобы создавался при этом для каждого из них свой пользователь DomainName\UserLogin в Security\Users - не хочется, некрасиво. Правильно ли создавать таблицы в схеме dbo, можно ли этого добиться. Вопросы эти не степени жизни и смерти, тестовые таблицы и ХП можно создать и держать в базах постоянно. Но интересно, как сделать лучше, что логичнее с точки зрения сервера. К сообщению приложен файл. Размер - 19Kb |
30 апр 19, 13:26 [21875494] Ответить | Цитировать Сообщить модератору |
aleks222 Member Откуда: Сообщений: 1245 |
The default schema does not exist Не, просто посмотреть дефолтную схему пользователя - это слишком просто. |
30 апр 19, 14:52 [21875597] Ответить | Цитировать Сообщить модератору |
Владислав Колосов Member Откуда: Сообщений: 8353 |
teo609,
Если при создании пользователя не укажете явно схему по умолчанию, то так и будет. |
||
30 апр 19, 16:51 [21875745] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31785 |
То есть не CREATE TABLE testTable ..., а CREATE TABLE dbo.testTable ... |
||||
30 апр 19, 17:56 [21875818] Ответить | Цитировать Сообщить модератору |
teo609 Member Откуда: Рязань Сообщений: 140 |
Спасибо. Попробовал так, и вышел на то, что надо дать права бд-роли на схему dbo. DB\Security\Schemas\dbo, Properties, Permissions, в верхний список внести нужную роль, в нижнем списке отметить нужные права. |
||
13 май 19, 17:03 [21883585] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |