在MSSQL SERVER2005中,如何给用户授予只有创建表、没有删除表及修改表结构的权限

在MSSQL SERVER2005中,如何给用户授予只有创建表、没有删除表及修改表结构的权限,第1张

有创建表Create table权限,隐含Alter。

楼主 的需求只能通过DB 触发器控制

go--举个例子

USE [master]

GO

CREATE LOGIN [Roy] WITH PASSWORD=N'1', DEFAULT_DATABASE=[Test], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF

GO

USE [Test]

GO

CREATE USER [Roy] FOR LOGIN [Roy]

GO

USE [Test]

GO

/****** 物件: Schema [Roy]指令码日期: 08/19/2011 09:46:15 ******/

CREATE SCHEMA [Roy] AUTHORIZATION [Roy]

go

use [Test]

GO

GRANT CREATE TABLE TO [Roy]

GO

CREATE TRIGGER tr_DBDropTable ON DATABASE

FOR DROP_TABLE,ALTER_TABLE

AS

IF ORIGINAL_LOGIN()='Roy'

BEGIN

PRINT '没权限执行 DROP TABLE'

ROLLBACK

end

GO

--以下测试,用登陆用户Roy

go

CREATE TABLE Roy.Roy(ID int)

GO

SELECT SUSER_NAME(), USER_NAME()

DROP TABLE Roy.Roy

/*

没权限执行 DROP TABLE

讯息 3609,层级 16,状态 2,行 2

交易在触发程序中结束。已中止批次。

*/

方法一、由Management Studio中的表上右键选属性(Properties),左边选权限(Permissions),右边中间添加和选中某个User或Role,下面选中或移除某个权限。

方法二、语句 : Grant 权限 On table 表名 To 用户名


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/362447.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-11
下一篇2023-05-11

发表评论

登录后才能评论

评论列表(0条)

    保存