Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Нет доступа для выполнения своей процедуры в базе master  [new]
shanton
Member

Откуда: Украина г. Хмельницкий
Сообщений: 628
Пытаюсь выполнить процедуру restore_db, которая находится в базе master. Получаю ошибку:
Картинка с другого сайта.
подключение к SQL от имени пользователя UEA/serg. Права на выполнение процедуры имеет:
Картинка с другого сайта.
даже включил его в db_owner. Помогите понять почему нет доступа на выполнение?
28 июл 17, 14:44    [20682949]     Ответить | Цитировать Сообщить модератору
 Re: Нет доступа для выполнения своей процедуры в базе master  [new]
o-o
Guest
или пользователь не этот, или прав нет
(например, есть денай группе, в которую юзер входит)
в студии все то же самое, если пытаться выполнить?
28 июл 17, 15:06    [20683049]     Ответить | Цитировать Сообщить модератору
 Re: Нет доступа для выполнения своей процедуры в базе master  [new]
o-o
Guest
зайдите под этим же юзером в студию и покажите результат
select *
from sys.fn_my_permissions('restore_db', 'object')
28 июл 17, 15:08    [20683064]     Ответить | Цитировать Сообщить модератору
 Re: Нет доступа для выполнения своей процедуры в базе master  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7757
Могли на уровне базы DENY поставить роли или пользователю.
28 июл 17, 15:08    [20683065]     Ответить | Цитировать Сообщить модератору
 Re: Нет доступа для выполнения своей процедуры в базе master  [new]
shanton
Member

Откуда: Украина г. Хмельницкий
Сообщений: 628
o-o
зайдите под этим же юзером в студию и покажите результат
select *
from sys.fn_my_permissions('restore_db', 'object')


Картинка с другого сайта.
28 июл 17, 15:12    [20683078]     Ответить | Цитировать Сообщить модератору
 Re: Нет доступа для выполнения своей процедуры в базе master  [new]
o-o
Guest
ну так значит юзер не тот, что же еще.
тот, который ошибку получает.
вот выполните под UEA/serg из студии, и выполнится
28 июл 17, 15:18    [20683100]     Ответить | Цитировать Сообщить модератору
 Re: Нет доступа для выполнения своей процедуры в базе master  [new]
shanton
Member

Откуда: Украина г. Хмельницкий
Сообщений: 628
Да сейчас уже выполняется. Но ошибка следующая:
Картинка с другого сайта.
в процедуре идёт востановление базы DNSI2:
RESTORE DATABASE DNSI2 FROM DISK =  @tBakFile WITH
MOVE 'DNSI' TO 'D:\SQL\DATA\DNSI2.mdf',
MOVE 'DNSI_Log' TO 'D:\SQL\DATA\DNSI2_Log.ldf',
REPLACE

пользователь включен в серверную роль dbcreator имеет db_owner базы DNSI2. Чего ещё не хватает?
28 июл 17, 15:24    [20683124]     Ответить | Цитировать Сообщить модератору
 Re: Нет доступа для выполнения своей процедуры в базе master  [new]
o-o
Guest
shanton
пользователь включен в серверную роль dbcreator имеет db_owner базы DNSI2. Чего ещё не хватает?

нет ли случайно в процедуре какого-нибудь EXECUTE AS?
ну и покажите
select *
from sys.fn_my_permissions(null, 'server')
28 июл 17, 15:28    [20683136]     Ответить | Цитировать Сообщить модератору
 Re: Нет доступа для выполнения своей процедуры в базе master  [new]
shanton
Member

Откуда: Украина г. Хмельницкий
Сообщений: 628
o-o,

Картинка с другого сайта.

а это процедура:

ALTER          PROCEDURE [dbo].[restore_db]
 @tBakFile CHAR(100),
 @tBakDate SMALLDATETIME,
 @tMn INT,
 @tYr INT
AS
--                                                 ВОСТАНОВЛЕНИ ВАК-ФАЙЛА НА DNSI2
RESTORE DATABASE DNSI2 FROM DISK =  @tBakFile WITH
MOVE 'DNSI' TO 'D:\SQL\DATA\DNSI2.mdf',
MOVE 'DNSI_Log' TO 'D:\SQL\DATA\DNSI2_Log.ldf',
REPLACE
--                                                 ОБНУЛЕНИЕ ФАЙЛОВ НА DNSI1
TRUNCATE TABLE DNSI1.dbo.table10150
TRUNCATE TABLE DNSI1.dbo.table10153
TRUNCATE TABLE DNSI1.dbo.table10857
TRUNCATE TABLE DNSI1.dbo.table469
DELETE FROM DNSI1.dbo.table_bakfile WHERE mn = @tMn AND yr = @tYr
--                                                     ОБРЕЗКА ЖЕРНАЛА ТРАНЗАКЦИЙ
DUMP TRANSACTION DNSI1 WITH NO_LOG
--                                                 КОПИРОВАНИЕ ДАННЫХ С DNSI2 НА DNSI1
INSERT INTO [DNSI1].[dbo].[table10150]([pr], [ik], [ich], [q], [upc], [p])
SELECT [pr], [ik], [ich], [q], [upc], [p] FROM [DNSI2].[dbo].[table10150]
--
INSERT INTO [DNSI1].[dbo].[table10153]([p], [kod_det], [z1], [z2], [z3], [z4], [z5], [z6], [z7])
SELECT [p], [kod_det], [z1], [z2], [z3], [z4], [z5], [z6], [z7] FROM [DNSI2].[dbo].[table10153]
--
INSERT INTO [DNSI1].[dbo].[table10857]([p], [i], [inn], [io])
SELECT [p], [i], [inn], [io] FROM [DNSI2].[dbo].[table10857]
--
INSERT INTO [DNSI1].[dbo].[table469]([kod_upak], [rez1], [kod_iz_ot], [rez2], [kod_iz_do], [rez3], [primen], [naim_izd], [pr_iz])
SELECT [kod_upak], [rez1], [kod_iz_ot], [rez2], [kod_iz_do], [rez3], [primen], [naim_izd], [pr_iz] FROM [DNSI2].[dbo].[table469]
--
DECLARE @tKst INT
SET @tKst = (SELECT COUNT(*) AS kol FROM [DNSI1].[dbo].[table10150])
INSERT INTO [DNSI1].[dbo].[table_bakfile]([bak_name], [bak_date], [kst10150], [mn], [yr])
VALUES(@tBakFile, @tBakDate, @tKst, @tMn, @tYr)
28 июл 17, 15:35    [20683178]     Ответить | Цитировать Сообщить модератору
 Re: Нет доступа для выполнения своей процедуры в базе master  [new]
o-o
Guest
что-то я думаю, ошибки получает другой юзер.
у этого прав хватает
28 июл 17, 15:40    [20683199]     Ответить | Цитировать Сообщить модератору
 Re: Нет доступа для выполнения своей процедуры в базе master  [new]
o-o
Guest
секундочку, а база, которую ресторим, уже существует?
28 июл 17, 15:44    [20683215]     Ответить | Цитировать Сообщить модератору
 Re: Нет доступа для выполнения своей процедуры в базе master  [new]
o-o
Guest
вообще знаете, серверный набор прав намекает на сисадмина,
а у него проблем быть не может по определению.
сейчас проверьте это дело:
select is_srvrolemember('sysadmin')

и осознайте, что в студии все выполняет один юзер (sysadmin),
а там, где ошибка, другой
28 июл 17, 15:50    [20683243]     Ответить | Цитировать Сообщить модератору
 Re: Нет доступа для выполнения своей процедуры в базе master  [new]
shanton
Member

Откуда: Украина г. Хмельницкий
Сообщений: 628
o-o
что-то я думаю, ошибки получает другой юзер.
у этого прав хватает


Так и есть, в программе всё выполнялось от имени AppAdmin. А я всё голову ломаю и вам морочу. Извините не досмотрел.
28 июл 17, 16:12    [20683335]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить