Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Дать права на несуществующую таблицу / 6 сообщений из 6, страница 1 из 1
26.05.2020, 01:41
    #39961953
shevcha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дать права на несуществующую таблицу
Задачка вот:
Есть таблица (FRSInventory_Fact), с которой девелоперы постоянно работают. И уничтожают её периодически (им так нужно). Есть другой юзер/схема (с именем IST7621), которому нужен доступ к этой таблице. Я, как ДБА, даю доступ, всё хорошо, потом девелоперы удаляют и пересоздают таблицу и все права пропадают и их надо переназначать по новой.
Это тикет, время на обработку и всё прочее. Девелоперы хотят быстрее.
Есть два варинта:
1. Просто дать доступ на все объекты в схеме, включая таблицу. Плохой вариант, т.к. юзер будет видеть всё, что не очень хорошо.
2. Я создал вот такую процедуру, и дал девелоперам (по имени guest_proserveit) execute right на эту процедуру:
CREATE PROCEDURE edw.IST7621Access
AS

GRANT Select ON OBJECT::[edw].[FRSInventory_Fact] TO IST7621;
GO
-- End of PROCEDURE
Потом команда:
GRANT EXECUTE ON OBJECT::edw.IST7621Access TO guest_proserveit
GO
Ошибок при создании не было.
Но когда девелоперы попробовали запустить после пересоздании таблицы, то ничего не получилось. Выскакивает ошибка о нехватке доступа

Идеи?
Спасибо
...
Рейтинг: 0 / 0
26.05.2020, 01:44
    #39961954
msLex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дать права на несуществующую таблицу
shevcha,

with execute as owner.

А вообще, по рукам таким разработчикам, и права отобрать.
...
Рейтинг: 0 / 0
26.05.2020, 10:26
    #39962048
komrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дать права на несуществующую таблицу
shevcha
Задачка вот:
Есть таблица (FRSInventory_Fact), с которой девелоперы постоянно работают. И уничтожают её периодически (им так нужно). Есть другой юзер/схема (с именем IST7621), которому нужен доступ к этой таблице. Я, как ДБА, даю доступ, всё хорошо, потом девелоперы удаляют и пересоздают таблицу и все права пропадают и их надо переназначать по новой.
Это тикет, время на обработку и всё прочее. Девелоперы хотят быстрее.

Идеи?
Спасибо


DDL trigger

пример
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
-- prepare objects 
create login test_user with password='A2qwerty'
go
create database testdb
go
use testdb
go
create user [test_user] for login [test_user]
go
create table test_table (i int)
go
grant select,insert,delete on test_table to test_user 
go

-- check effective permissions
exec sp_helprotect test_table 
go

-- create db trigger 
CREATE TRIGGER grant_perms
ON DATABASE   
FOR CREATE_TABLE   
AS   
  
	if EVENTDATA().value('(/EVENT_INSTANCE/ObjectName)[1]','nvarchar(128)') = N'test_table'
	 begin
  		grant select,insert,delete on test_table to test_user 
		PRINT 'Permissions granted.'  
	end
go

-- test the trigger 
drop table test_table 
go
create table test_table (i int)
go

-- check effective permissions
exec sp_helprotect 'test_table'
go

/*--cleanup
use master
go
drop database testdb
go
drop login test_user
go
*/

...
Рейтинг: 0 / 0
26.05.2020, 12:31
    #39962142
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дать права на несуществующую таблицу
shevcha,

если можете повлиять на техпроцесс, то попробуйте, как сисадмин. Разработчики на продуктиве не должны иметь прав на изменение/удаление объектов, пусть занимаются отладкой на локальных базах, Developer редакцию сервера давно раздают бесплатно.
...
Рейтинг: 0 / 0
26.05.2020, 20:19
    #39962489
uaggster
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дать права на несуществующую таблицу
Чего вы мучаетесь?
Создайте синоним к таблице, и дайте стороннему юзеру грант на select (ну или чего там до кучи) к этому синониму.
...
Рейтинг: 0 / 0
28.05.2020, 20:36
    #39963611
shevcha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дать права на несуществующую таблицу
Спасибо за помощь.
Использовал вот этот подход - with execute as owner.
Заработало.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Дать права на несуществующую таблицу / 6 сообщений из 6, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]