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