给用户分配收缩日志的权限
自己编写了一个收缩日志的存储过程,里面用到了
BACKUP LOG '+@dbname+' WITH NO_LOG 和 DBCC SHRINKFILE(N'''+@logName+''',0,TRUNCATEONLY)
其中@dbname=db_name();select top 1 @logName=[name] from sysFiles where charIndex('.ldf',fileName)>0
现在有个普通用户,这个用户只有对部分表进行操作的权限。
问题:怎么为这个普通用户赋予执行收缩日志存储过程的权限,也就是怎么把BACKUP LOG和DBCC SHRINKFILE的权限给它。
环境:MS SQL SERVER 2005
[解决办法]
GRANT IMPERSONATE ON USER:: dbo TO USER_NAME_AGOcreate procedure testasbegin EXECUTE AS USER='dbo'BACKUP LOG '+@dbname+' WITH NO_LOG 和 DBCC SHRINKFILE(N'''+@logName+''',0,TRUNCATEONLY)......endGOGRANT EXECUTE ON TEST TO USER_NAME_AGO