Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
Gosha Member Откуда: Odessa Сообщений: 217 |
Всем доброго времени суток. Сабж уже вынес мне моск, ищу помощи. Есть джоб запускающий юзерпроцу в которой запускается бэкап с его проверкой. Вот та самая проверка возвращает ошибку. [SQLSTATE 42000] (Error 3013) CREATE DATABASE permission denied in database 'master'. - проца создана под sa - овнер джоба sa - шаг джоба выполняется из под специально созданного с админ правами доменного юзера domain\BKUser - у юзера domain\BKUser есть одноименный логин domain\SQLBKUser - логин в серверных ролях public, dbcreator - на юзер базе есть пользователь bk_user промапленный на логин domain\SQLBKUser - bk_user состоит в ролях юзербазы public, db_backupoperator листинг кода проверки вызывающий ошибку: -- verify backup SELECT @backupSetId = position FROM msdb..backupset WHERE database_name = @db_name and backup_set_id = (SELECT max(backup_set_id) FROM msdb..backupset WHERE database_name = @db_name ) Microsoft SQL Server 2016 (SP1) (KB3182545) - 13.0.4001.0 (X64) on Windows Server 2016 Standard 6.3 <X64> (Build 14393: ) |
26 янв 18, 18:36 [21142577] Ответить | Цитировать Сообщить модератору |
Gosha Member Откуда: Odessa Сообщений: 217 |
Забыл... файл бэкапа ложится в сетевую папку, доступ на запись у доменного юзера есть |
26 янв 18, 18:39 [21142588] Ответить | Цитировать Сообщить модератору |
Yasha123 Member Откуда: Сообщений: 1955 |
что это тут такое написано? по первому пункту: не вижу одноименности. по второму: виндовый логин мапится лишь в самого себя, что еще за невиндовый юзер, "промапленный на логин domain\SQLBKUser"? |
||
26 янв 18, 18:42 [21142592] Ответить | Цитировать Сообщить модератору |
Yasha123 Member Откуда: Сообщений: 1955 |
CREATE DATABASE не нужен для бэкапа, это надо для рестора. ваше "с проверкой" это есть что, не backup with checksum, а "restore verifyonly"? --- для рестора существующей базы надо быть минимум в роли DBCREATOR |
26 янв 18, 18:47 [21142605] Ответить | Цитировать Сообщить модератору |
Yasha123 Member Откуда: Сообщений: 1955 |
ну и наконец ошибка совсем не на селекте из msdb..backupset: для такого селекта вообще ничего не нужно. просто быть отмапленным на сервере как логин достаточно |
26 янв 18, 18:51 [21142610] Ответить | Цитировать Сообщить модератору |
Yasha123 Member Откуда: Сообщений: 1955 |
короче, ищите, где у вас restore verifyonly. ваш логин никакой не dbcreator, отсюда и ошибка |
26 янв 18, 18:55 [21142616] Ответить | Цитировать Сообщить модератору |
Gosha Member Откуда: Odessa Сообщений: 217 |
1) Сорри, "SQL" в имени логина лишнее, логин действительно одноименный. 2) Хотел сказать,что в базе есть юзер bk_user с логином domain\BKUser
все верно, не тот кусок кода вставил ((( пятница, вечер, снова сорри вот тот: RESTORE VERIFYONLY FROM DISK = @destination_file WITH FILE = @backupSetId, NOUNLOAD, NOREWIND почему логин никакой не dbcreator? результат выполнения select IS_SRVROLEMEMBER ( 'dbcreator' ,'domain\BKUser' )1 |
||||||
26 янв 18, 19:16 [21142636] Ответить | Цитировать Сообщить модератору |
Yasha123 Member Откуда: Сообщений: 1955 |
Gosha, в процедуре точно не прописано какое-нибудь with execute as owner? сделайте простую вещь: в процедуре закомментируйте весь код, вставьте select user, system_user. теперь запустите. наверняка юзер будет guest |
26 янв 18, 20:11 [21142698] Ответить | Цитировать Сообщить модератору |
Gosha Member Откуда: Odessa Сообщений: 217 |
Yasha123, Сделал по совету в хистори джоба такое сообщение: Executed as user: bk_user. The step succeeded.в логе запрос select user, system_userвернул bk_user , domain\BKUser Куда копать, не пойму (( |
26 янв 18, 20:35 [21142748] Ответить | Цитировать Сообщить модератору |
Gosha Member Откуда: Odessa Сообщений: 217 |
with execute as owner в проце точно нет |
26 янв 18, 20:38 [21142752] Ответить | Цитировать Сообщить модератору |
Yasha123 Member Откуда: Сообщений: 1955 |
как вы умудрились доменный логин отмапить в такого вот юзера, совершенно не доменного? заскриптуйте что ли создание юзера и код покажите, плиз |
||
26 янв 18, 21:00 [21142771] Ответить | Цитировать Сообщить модератору |
Yasha123 Member Откуда: Сообщений: 1955 |
ну и кстати вставьте еще в процедуру select IS_SRVROLEMEMBER ( 'dbcreator' ,'domain\BKUser' ) посмотрим, creator он или не creator. --- кстати, а у него нет deny create any database? посмотрите в sys.server_permissions |
26 янв 18, 21:04 [21142781] Ответить | Цитировать Сообщить модератору |
Gosha Member Откуда: Odessa Сообщений: 217 |
Ну это вообще не проблема заменить имя юзера для логина при создании :) решил посмотреть, что вернет ORIGINAL_LOGIN() и он вернул совершенно не то, что ожидал - domain\SRV03$ Я правильно понимаю, что джоб выполняется именно от этого имени? вообще не понимаю, почему имя компа. any ideas? |
||||
29 янв 18, 19:15 [21148516] Ответить | Цитировать Сообщить модератору |
Yasha123 Member Откуда: Сообщений: 1955 |
ну так агент запущен или под Local System или под Network Service. у них имя в сети это имя_компа$ |
||
29 янв 18, 21:49 [21148920] Ответить | Цитировать Сообщить модератору |
Gosha Member Откуда: Odessa Сообщений: 217 |
вот результат запросаselect [status], [dbname], [name], loginname, denylogin, hasaccess, isntname, isntgroup, isntuser, sysadmin, securityadmin, serveradmin, setupadmin, processadmin, diskadmin, dbcreator, bulkadmin from sys.syslogins where name = 'domain\BKUser'
может чего-то не хватает?... куда глянуть, что еще посмотреть? |
|||||||||||||||||||||||||||||||||||
30 янв 18, 13:42 [21150878] Ответить | Цитировать Сообщить модератору |
Yasha123 Member Откуда: Сообщений: 1955 |
выполните из своей процедурыselect IS_SRVROLEMEMBER ( 'dbcreator') без указания логина. creator он или не creator? и где результат проверки, есть ли DENY CREATE ANY DATABASE |
30 янв 18, 14:23 [21151124] Ответить | Цитировать Сообщить модератору |
Gosha Member Откуда: Odessa Сообщений: 217 |
Yasha123, опачкиии.... запрос select IS_SRVROLEMEMBER ( 'dbcreator')из джоба вернул 0
вот результат из sys.database_permissions для пользовательской базы
что не так делаю? (( |
|||||||||||||||||||||||||||||||||
30 янв 18, 15:35 [21151578] Ответить | Цитировать Сообщить модератору |
Yasha123 Member Откуда: Сообщений: 1955 |
шаг джоба типа T-SQL при овнере джоба sysadmin выполняется от учетки агента. вот и поместите его (domain\SRV03$) в роль dbcreator |
30 янв 18, 16:08 [21151783] Ответить | Цитировать Сообщить модератору |
Gosha Member Откуда: Odessa Сообщений: 217 |
Yasha123, у меня овнер джоба это sa а шаг джоба выполняется от имени юзера bk_user у которого вот этот самый логин domain\BKUser кого куда мне добавить? или может нужно поменять овнера джоба? |
30 янв 18, 16:45 [21151926] Ответить | Цитировать Сообщить модератору |
Yasha123 Member Откуда: Сообщений: 1955 |
я даже не знаю, как еще донести-то. жирным шрифтом соответствующего размера? может, на инглише понятнее?
ну или вот еще аж c репро: SQL Server Agent jobs and user contexts |
||
30 янв 18, 16:52 [21151949] Ответить | Цитировать Сообщить модератору |
Gosha Member Откуда: Odessa Сообщений: 217 |
Yasha123, так понятно, спасибо :) особенно за ссылку |
30 янв 18, 18:13 [21152186] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |