SQLServer怎么实现只赋予创建表权限
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,本文小编为大家详细介绍"SQLServer怎么实现只赋予创建表权限",内容详细,步骤清晰,细节处理妥当,希望这篇"SQLServer怎么实现只赋予创建表权限"文章能帮助大家解决疑惑,下面跟着小编的思路
千家信息网最后更新 2025年11月07日SQLServer怎么实现只赋予创建表权限
本文小编为大家详细介绍"SQLServer怎么实现只赋予创建表权限",内容详细,步骤清晰,细节处理妥当,希望这篇"SQLServer怎么实现只赋予创建表权限"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
背景
今天客户问到一个问题。 我想新建一个账号给外部人员使用,但是我只想给他创建表的权限,这应该如何操作。开始可能认为这个问题很简单。
我新建一个登录账号A
USE [master]GOCREATE LOGIN [A] WITH PASSWORD=N'123456', DEFAULT_DATABASE=[master], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFFGO
创建数据库级别的用户A
USE [security_test]GOCREATE USER [a] FOR LOGIN [a] WITH DEFAULT_SCHEMA=[dbo]GO
赋予创建表的权限
GRANT CREATE TABLE TO A;
然后给他赋予创建表的权限
现在试试建表
CREATE TABLE test (id int)
提示如下信息:

这是什么情况?
解决办法1
创建表,每个表都是需要一个所有者,就是架构名。 对于我们的创建表语句 CREATE TABLE test (id int) 它其实默认使用的是 dbo架构。
A用户有了创建表的权限,还需要有dbo 架构的修改权限。 于是我们需要:
GRANT ALTER ON SCHEMA::dbo TO A;GO
但此时我们会遇到另外一个问题,就是加上这个权限之后,A用户除了create table 之外还能做drop table ,alter table等操作。
所以我们需要创建一个DDL 触发器 ,来阻止其他的操作
CREATE TRIGGER db_trigger_BlockNonTableDDLON DATABASE FOR DDL_DATABASE_LEVEL_EVENTSAS BEGIN IF IS_MEMBER('A') = 1 BEGIN DECLARE @TriggerEventText nvarchar(max); SET @TriggerEventText = EVENTDATA().value('(/EVENT_INSTANCE/TSQLCommand/CommandText)[1]','nvarchar(max)') IF NOT ((@TriggerEventText LIKE 'CREATE TABLE%')) BEGIN RAISERROR (@TriggerEventText, 16, 1) ROLLBACK TRANSACTION; END END; END; GO解决办法2
如果,创建的表不需要使用默认的dbo架构
那么可以给 给外部人员单独创建一个shchema 。给新建一个架构schema ,
create schema schema1 authorization dbogo
然后
grant create table to Agrant alter, insert on schema::schema1 to A
此时,A仍然可以创建表,和删除表,但是他直接创建和删除属于它的架构的表。这也起到了限定权限的问题。
读到这里,这篇"SQLServer怎么实现只赋予创建表权限"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。
权限
架构
问题
文章
用户
人员
内容
办法
就是
账号
妥当
信息
客户
思路
情况
所有者
数据
数据库
新知
更多
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
域控服务器安全威胁
查询所有数据库表命令
网络安全法主题活动
赤水住宿软件开发
德州微信小程序软件开发推荐
金盾6942服务器机柜
网络技术怎么找人
南通万千网络技术公司
软件开发团队的管理问题
网络技术教学理念有哪些
安卓数据库新增刷新
网络安全的立体字图片
常州车间备件管理软件开发
数据库开发文档
软件开发管理的英文
腾兴互联网科技有限公司
微信里个人数据库
怀旧服服务器职业哪个好
软件开发课程百度网盘
信息网络安全 杂志社
长城宽带服务器租用
ibatis查询数据库编码
软件开发面试对日开发
运大网络技术有限公
检察 网络安全态势
人民银行数据库更新
三级网络技术对应的四级
政府机关单位网络安全实施计划
网络技术类岗位
服务器宝藏