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

Откуда:
Сообщений: 634
добрый день,

создала процедуру, являюсь ее полновправным владельцем и

USE AdventureWorksDW2012;

GO
EXECUTE AdventureWorksDW2012.[dbo].[FILL_D$ROUTE_NO] 123, 20162040001, 1;


нагло пишет мне
Msg 229, Level 14, State 5, Procedure FILL_D$ROUTE_NO, Line 1
The EXECUTE permission was denied on the object 'FILL_D$ROUTE_NO', database 'AdventureWorksDW2012', schema 'dbo'.

что же это такое ? ведь в документации написано, что процедура может быть запущена владельцем и теми у кого грант на экзекут

а я - владелец

что-то неправильно сделала ?

Модератор: Тема перенесена из форума "MySQL".


Сообщение было отредактировано: 25 янв 17, 18:00
25 янв 17, 17:57    [20145995]     Ответить | Цитировать Сообщить модератору
 Re: запуск процедуры  [new]
Rankatan
Member

Откуда:
Сообщений: 250
Возможно у этой ХП есть группа где стоит DENY на выполнение и вы входите в эту группу. DENY > GRANT
25 янв 17, 18:04    [20146019]     Ответить | Цитировать Сообщить модератору
 Re: запуск процедуры  [new]
Ozornitca
Member [заблокирован]

Откуда:
Сообщений: 634
Rankatan
Возможно у этой ХП есть группа где стоит DENY на выполнение и вы входите в эту группу. DENY > GRANT


я ее сама создавала и никакие дополнительные действия не делала

могут автоматом попадать в группы ?
25 янв 17, 18:07    [20146026]     Ответить | Цитировать Сообщить модератору
 Re: запуск процедуры  [new]
Rankatan
Member

Откуда:
Сообщений: 250
+Владелец насколько помню схема в которой создали ХП, а не пользователь.
25 янв 17, 18:08    [20146028]     Ответить | Цитировать Сообщить модератору
 Re: запуск процедуры  [new]
Ozornitca
Member [заблокирован]

Откуда:
Сообщений: 634
Rankatan
+Владелец насколько помню схема в которой создали ХП, а не пользователь.


а как же запустить

GRANT EXECUTE ON AdventureWorksDW2012.[dbo].[FILL_D$ROUTE_NO] TO test_user

пишет
Cannot grant, deny, or revoke permissions to sa, dbo, entity owner, information_schema, sys, or yourself.
25 янв 17, 18:12    [20146041]     Ответить | Цитировать Сообщить модератору
 Re: запуск процедуры  [new]
лолл
Member

Откуда:
Сообщений: 450
Ozornitca,

Процедура создана в схеме dbo и, если вы не меняли, ее владельцем выступает пользователь dbo. Дать права пользователю test_user на ее исполнение может пользователь dbo (имя входа "sa")
25 янв 17, 18:51    [20146204]     Ответить | Цитировать Сообщить модератору
 Re: запуск процедуры  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6802
лолл
Ozornitca,

Процедура создана в схеме dbo и, если вы не меняли, ее владельцем выступает пользователь dbo. Дать права пользователю test_user на ее исполнение может пользователь dbo (имя входа "sa")

ого как...

автор
Cannot grant, deny, or revoke permissions to sa, dbo, entity owner, information_schema, sys, or yourself.

в вашем случае сообщает что самому себе давать не прилично
25 янв 17, 18:53    [20146213]     Ответить | Цитировать Сообщить модератору
 Re: запуск процедуры  [new]
Ozornitca
Member [заблокирован]

Откуда:
Сообщений: 634
лолл
Ozornitca,

Процедура создана в схеме dbo и, если вы не меняли, ее владельцем выступает пользователь dbo. Дать права пользователю test_user на ее исполнение может пользователь dbo (имя входа "sa")


я не знаю пароля sa


и честно говоря- это все очень странно
любую процедуру на схеме только через sa что ли можно разрешения выдавать?
25 янв 17, 18:57    [20146238]     Ответить | Цитировать Сообщить модератору
 Re: запуск процедуры  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6802
[quot Ozornitca]
Rankatan
Msg 229, Level 14, State 5, Procedure FILL_D$ROUTE_NO, Line 1
The EXECUTE permission was denied on the object 'FILL_D$ROUTE_NO', database 'AdventureWorksDW2012', schema 'dbo'..

посмотрите что есть,
автор
SELECT * FROM sys.fn_my_permissions(' AdventureWorksDW2012.[dbo].[FILL_D$ROUTE_NO]','OBJECT')
25 янв 17, 18:59    [20146246]     Ответить | Цитировать Сообщить модератору
 Re: запуск процедуры  [new]
Ozornitca
Member [заблокирован]

Откуда:
Сообщений: 634
[quot TaPaK]
Ozornitca
пропущено...

посмотрите что есть,
пропущено...


SELECT * FROM sys.fn_my_permissions(' AdventureWorksDW2012.[dbo].[FILL_D$ROUTE_NO]','OBJECT')


выдал пустую выборку
25 янв 17, 19:01    [20146251]     Ответить | Цитировать Сообщить модератору
 Re: запуск процедуры  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 9160
Ozornitca,

создали как, CREATE PROCEDURE [FILL_D$ROUTE_NO]?
Так она создана в Вашей схеме по умолчанию. И если не предпринять мер, то эта схема далеко не dbo.
25 янв 17, 19:10    [20146287]     Ответить | Цитировать Сообщить модератору
 Re: запуск процедуры  [new]
Ozornitca
Member [заблокирован]

Откуда:
Сообщений: 634
Владислав Колосов
Ozornitca,

создали как, CREATE PROCEDURE [FILL_D$ROUTE_NO]?
Так она создана в Вашей схеме по умолчанию. И если не предпринять мер, то эта схема далеко не dbo.


CREATE PROCEDURE [dbo].[FILL_D$ROUTE_NO]
25 янв 17, 19:14    [20146296]     Ответить | Цитировать Сообщить модератору
 Re: запуск процедуры  [new]
Ozornitca
Member [заблокирован]

Откуда:
Сообщений: 634
а работаю под пользователем test_user

вообще в оракл создаешь себе грейт о реплейс процедура такая-то просто имя и все норм

а тут какие-то прям заморочки
25 янв 17, 19:15    [20146303]     Ответить | Цитировать Сообщить модератору
 Re: запуск процедуры  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 9160
Ozornitca,

GRANT не даст доступ при DENY, надо использовать REVOKE.
25 янв 17, 19:19    [20146316]     Ответить | Цитировать Сообщить модератору
 Re: запуск процедуры  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 9160
Хотя нет, заменит для конкретного объекта.
25 янв 17, 19:21    [20146328]     Ответить | Цитировать Сообщить модератору
 Re: запуск процедуры  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6802
Ozornitca
а работаю под пользователем test_user

вообще в оракл создаешь себе грейт о реплейс процедура такая-то просто имя и все норм

а тут какие-то прям заморочки

а в итоге окажеться что создали вы процедуру на одной базе, смотрите на третьей
25 янв 17, 19:22    [20146332]     Ответить | Цитировать Сообщить модератору
 Re: запуск процедуры  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6802
TaPaK
Ozornitca
а работаю под пользователем test_user

вообще в оракл создаешь себе грейт о реплейс процедура такая-то просто имя и все норм

а тут какие-то прям заморочки

а в итоге окажеться что создали вы процедуру на одной базе, смотрите на третьей

и судя по

автор
USE AdventureWorksDW2012;
GO
EXECUTE AdventureWorksDW2012.[dbo].[FILL_D$ROUTE_NO] 123, 20162040001, 1;

создали вы на базе master
25 янв 17, 19:24    [20146337]     Ответить | Цитировать Сообщить модератору
 Re: запуск процедуры  [new]
Ozornitca
Member [заблокирован]

Откуда:
Сообщений: 634
TaPaK
Ozornitca
а работаю под пользователем test_user

вообще в оракл создаешь себе грейт о реплейс процедура такая-то просто имя и все норм

а тут какие-то прям заморочки

а в итоге окажеться что создали вы процедуру на одной базе, смотрите на третьей


я смотрю слева в иерархии

AdventureWorksDW2012
progeammability - dbo.название

причем, я пересоздала CREATE PROCEDURE [FILL_D$ROUTE_NO]

то есть просто указала имя- он по умолчанию поместил туда же и добавил схему dbo. перед наименованием процедуры
25 янв 17, 19:25    [20146341]     Ответить | Цитировать Сообщить модератору
 Re: запуск процедуры  [new]
Ozornitca
Member [заблокирован]

Откуда:
Сообщений: 634
TaPaK
TaPaK
пропущено...

а в итоге окажеться что создали вы процедуру на одной базе, смотрите на третьей

и судя по

автор
USE AdventureWorksDW2012;
GO
EXECUTE AdventureWorksDW2012.[dbo].[FILL_D$ROUTE_NO] 123, 20162040001, 1;

создали вы на базе master


извините,

я вообще сегодня первый день пишу на этом языке и вообще не понимаю о чем вы говорите

создала на мастер, и что дальше?

в постгрессе и оракле что-то не было проблем с запуском,
тут какой-то совсем другой принцип?
25 янв 17, 19:34    [20146374]     Ответить | Цитировать Сообщить модератору
 Re: запуск процедуры  [new]
Ozornitca
Member [заблокирован]

Откуда:
Сообщений: 634
а если вопрос поставить по-другому :

я- пользователь test

как мне под этим пользователем создать процедуру, чтобы test смог под собой ее запустить?
25 янв 17, 19:58    [20146430]     Ответить | Цитировать Сообщить модератору
 Re: запуск процедуры  [new]
felix_ff
Member

Откуда: Moscow
Сообщений: 1913
Ozornitca,

Ну давайте тогда по шагам.
Use <ваша база>
Go

Select user_name()
Select * from sys.database_principals where principal_Id = user_I'd
Select object_schema_name(object_Id), * from sys.objects where object_Id = object_Id('')
25 янв 17, 19:58    [20146431]     Ответить | Цитировать Сообщить модератору
 Re: запуск процедуры  [new]
felix_ff
Member

Откуда: Moscow
Сообщений: 1913
Кривой телефон((

Замените там I'd на user_id()

А у функции обжект ид в кавычках пропишите имя процедуры
25 янв 17, 20:01    [20146440]     Ответить | Цитировать Сообщить модератору
 Re: запуск процедуры  [new]
invm
Member

Откуда: Москва
Сообщений: 9913
Ozornitca
тут какой-то совсем другой принцип?
Принципы такие же. Просто, в отличие от оракла и т.п., баз много, а не одна на экземпляр.

Покажите результат выполнения
use AdventureWorksDW2012;
go

select user, system_user;

declare @ProcName sysname = N'[dbo].[FILL_D$ROUTE_NO]';
exec sp_help @ProcName;
exec sp_helprotect @ProcName;
25 янв 17, 20:02    [20146445]     Ответить | Цитировать Сообщить модератору
 Re: запуск процедуры  [new]
Ozornitca
Member [заблокирован]

Откуда:
Сообщений: 634
felix_ff
Ozornitca,

Ну давайте тогда по шагам.
Use <ваша база>
Go

Select user_name()
Select * from sys.database_principals where principal_Id = user_I'd
Select object_schema_name(object_Id), * from sys.objects where object_Id = object_Id('')


Select user_name()
результат:
test_user
------------------------------------------------------------------------------------
Select * from sys.database_principals where principal_Id = user_Id()
результат:
test_user 8 S SQL_USER dbo 2016-12-23 17:29:20.853 2016-12-23 17:29:20.853 NULL 0x1AD8E72DD43BB64181D230E3FFFBB11E 0 1 INSTANCE NULL NULL
------------------------------------------------------------------------------------
Select object_schema_name(object_Id), * from sys.objects where object_Id = object_Id('')
результат:
пустая выборка
25 янв 17, 20:04    [20146447]     Ответить | Цитировать Сообщить модератору
 Re: запуск процедуры  [new]
Ozornitca
Member [заблокирован]

Откуда:
Сообщений: 634
invm
Ozornitca
тут какой-то совсем другой принцип?
Принципы такие же. Просто, в отличие от оракла и т.п., баз много, а не одна на экземпляр.

Покажите результат выполнения
use AdventureWorksDW2012;
go

select user, system_user;

declare @ProcName sysname = N'[dbo].[FILL_D$ROUTE_NO]';
exec sp_help @ProcName;
exec sp_helprotect @ProcName;


(1 row(s) affected)


Msg 15330, Level 11, State 1, Procedure sp_helprotect, Line 291
There are no matching rows on which to report.
25 янв 17, 20:05    [20146449]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить