делаю хранимую процедуру... которая, даёт пользователю базы права на нужные схемы...
CREATE PROCEDURE admin_ch.proc_user_grant_to_task_access
-- логин пользователя которому даём права
@user_login VARCHAR(30),
-- на какие задачи эти права даются
@as_admin int,
@as_men_oper int,
@as_org_oper int
AS
BEGIN
PRINT 'user_login:'+@user_login ;
PRINT 'as_admin :'+CAST(@as_admin AS CHAR(1)) ;
PRINT 'as_men_oper:'+CAST(@as_men_oper AS CHAR(1));
PRINT 'as_org_oper:'+CAST(@as_org_oper AS CHAR(1));
PRINT '=1';
EXEC sp_droprolemember 'admin_tbo', @user_login;
PRINT '=2';
EXEC sp_droprolemember 'men_tbo' , @user_login;
PRINT '=3';
EXEC sp_droprolemember 'org_tbo' , @user_login;
PRINT '=4';
-- даём права на на схемы
IF ( @as_admin = 1 ) EXEC sp_addrolemember 'admin_tbo', @user_login ;
IF ( @as_men_oper = 1 ) EXEC sp_addrolemember 'men_tbo' , @user_login;
IF ( @as_org_oper = 1 ) EXEC sp_addrolemember 'org_tbo' , @user_login;
END
результат работы:
EXEC admin_ch.proc_user_grant_to_task_access 'user33',1,1,0
===================================
user_login:user33
as_admin :1
as_men_oper:1
as_org_oper:0
=1
Запрос выполнен успешно, затронуто записей: -1 (219 мс)
видно, что после вызоыва 1-й системной хранимки sp_droprolemember работа прекращается...
отдельно в редакторе SQL процедуры нормально выполняются... такой пользователь точно есть в базе...
почему не хочет работать такая процедура? что я делаю не так?
СУБД MSSQL 2005 Express