seq
Дата: 27.01.2009 23:20:00
Помогите, пожалуйста.
пытаюсь написать logon trigger, который определял бы текущую роль сессии. Какой командой можно это сделать?
Например,
CREATE TRIGGER trigger_on_logon
ON ALL SERVER
FOR LOGON
AS
BEGIN
IF ORIGINAL_LOGIN()= 'aaa' AND
(SELECT COUNT(*) FROM sys.dm_exec_sessions
WHERE is_user_process = 1 AND
program_name='applikuha') =1
-- тут должна быть команда типа "назначить роль db_datareader"
ELSE
-- тут должна быть команда типа "назначить роль db_owner"
END;
Amorph
Дата: 27.01.2009 23:25:55
в роль входят пользователи (в серверные роли - логины) а не сессии
добавить пользователя в роль можно с помощью хранимой процедуры
sp_addrolemember
seq
Дата: 27.01.2009 23:32:41
А вообще в sql server можно назначить определенные права для сессии?
Amorph
Дата: 27.01.2009 23:38:10
seq,
думаю вам стоит почитать про модель прав в сиквелсервере
а вобще будет лучше если вы сформулируете проблему которую вы пытаетесь таким образом решать, потому что мне кажется что вы не тем путем идете. но это лишь мое ИМХО
seq
Дата: 27.01.2009 23:43:15
Amorph,
скорее всего не тем путем. задача вроде простая :) при логоне с определенных програм пользователь должен иметь права "только для чтения", а в остальных случаях дефолтные права.
Amorph
Дата: 27.01.2009 23:45:53
seq,
почитайте в БОЛ про application roles эт наверное то что вам надо
сам я таким не пользовался поэтому точно не скажу
seq
Дата: 27.01.2009 23:50:16
Amorph,
Я пробовал approles, но почему-то не активизируется в logon trigger. После логона user_name() показывает текущего пользователя, а если в этой же сессии дать команду exec sp_setapprole ... user_name() меняется на название approle.
Amorph
Дата: 28.01.2009 00:04:16
seq,
помоему вы просто не умеете их готовить :)
триггеры вам не нужны для этого
почитайте внимательно
[url=ms-help://MS.SQLCC.v9/MS.SQLSVR.v9.en/udb9/html/dca18b8a-ca03-4b7f-9a46-8474d5b66f76.htm]ms-help://MS.SQLCC.v9/MS.SQLSVR.v9.en/udb9/html/dca18b8a-ca03-4b7f-9a46-8474d5b66f76.htm[/url
Amorph
Дата: 28.01.2009 00:05:05
seq
Дата: 28.01.2009 00:23:53
Amorph,
блин, а у меня нет локальной копии.