use*_*878 1 sql-server shrink sql-server-express
我的问题是,当我尝试缩小日志时,它会在我以 SA 身份登录时起作用,但是当我以“普通”用户身份登录时,它不会缩小日志。(SQL Express 2008r2)
我试图找到我的问题的答案,但我不能。所以请帮助我!=)
在最后,你想的是让普通用户运行DBCC SHRINKxxx
这应该保留给高特权用户在少数情况下运行。这不应该是常规或正常操作。
DBCC SHRINKDATABASE和DBCC SHRINKFILE 的权限是
需要 sysadmin 固定服务器角色或 db_owner 固定数据库角色的成员身份。
如果你真的想运行它,因为你知道的更好,那么使用EXECUTE AS的存储过程
CREATE PROC dbo.IKnowBetter
WITH EXECUTE AS OWNER -- escalates to db_owner in dbo schema
AS
DBCC SHRINKFILE (1);
DBCC SHRINKFILE (2);
GO
GRANT EXECUTE ON dbo.IKnowBetter TO OikUser;
Run Code Online (Sandbox Code Playgroud)