默认情况下,将TRUNCATE TABLE权限授予表所有者、sysadmin固定服务器角色成员、db_owner和db_ddladmin固定数据库角色成员,并且该权限不可转移。但是,可以在诸如存储过程这样的模块中加入TRUNCATE TABLE语句,然后为使用EXECUTE AS字句的模块授予适当的权限。
注意:SQL Server中没有单独的TRUNCATE TABLE权限。
CREATE PROCEDURE [dbo].[Usp_TruncateTable]
@TableName varchar(50)
WITH EXECUTE AS SELF
AS
BEGIN
SET NOCOUNT ON;
DECLARE @TruncateSql nvarchar(2000)
SET @TruncateSql = 'TRUNCATE TABLE ' + @TableName
EXEC (@TruncateSql)
END
授予数据库用户执行该存储过程的权限:
grant exec on Usp_TruncateTable to bingo
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




