SQLServer怎么实现只赋予创建表权限
发表于:2025-01-17 作者:千家信息网编辑
千家信息网最后更新 2025年01月17日,本文小编为大家详细介绍"SQLServer怎么实现只赋予创建表权限",内容详细,步骤清晰,细节处理妥当,希望这篇"SQLServer怎么实现只赋予创建表权限"文章能帮助大家解决疑惑,下面跟着小编的思路
千家信息网最后更新 2025年01月17日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安全错误
数据库的锁怎样保障安全
数据库数据量大 扩容
数据库连接失败ora803
国内好用的交友软件开发
数据库with语句
网络安全相关政策法规
国家网络安全宣传周的主题日
监理建设工程进度网络技术
映浩软件开发工作室
公司起诉软件开发人员
r5300服务器怎么挂载镜像
wex5写入数据库
软件开发的典型症状
西门子服务器r系列
济南软件开发多少钱
南开区辅助网络技术不二之选
青岛卡友新兴网络技术服务
国家网络安全宣传周 官网
人工智能对于国家网络安全
虚拟主机一共要几个服务器
数据库关系符号
铝团上海互联网科技有限公司
服务器的企业管理器
服务器内存不足如何办
企业网络安全该怎么做
网络安全警示条例
山东网络技术比较好的大学
虹口区系统软件开发中心
vb 获得 数据库日期
服务器与网络设备管理规范
虚拟服务器资源怎么配置