浅析SQL Server授予了CREATE TABLE权限但是无法创建表
作者:潇湘隐者 时间:2024-01-28 18:26:23
在SQL Server中,如果我想授予一个用户klb拥有创建表的权限,但是我又不想授予其数据库角色db_ddladmin,因为这样会扩大其权限,那么授予下面权限可行吗?如下所示:
USE AdventureWorks2014;
GO
GRANT CREATE TABLE TO klb;
那么这样授权是否就OK呢?答案是这样授权会报错“The specified schema name "dbo" either does not exist or you do not have permission to use it.”
需要授予下面权限,登录名klb才能真正的创建表。
USE AdventureWorks2014;
GO
GRANT ALTER ON SCHEMA::dbo TO klb
但是这样又会扩大登录名klb的权限(绕了一圈,又重回老路)。其实,SQL Server中如果新建一个用户模式(user-schema)的话,那么就可以解决这个问题。
CREATE SCHEMA test AUTHORIZATION klb
如果已经存在对应的用户模式
USE AdventureWorks2014;
GO
GRANT ALTER ON SCHEMA::test TO klb
按上面这样授权后,那么对比下面脚本,你就会发现klb可以在test这个模式下创建表,但是不能在dbo这个模式下创建表。其实这个也是SQL Server 用户模式分离设计的原因。
CREATE TABLE dbo.TEST (id INT); --报错
GO
CREATE TABLE test.TEST (id INT);--正常
GO
来源:https://www.cnblogs.com/kerrycode/archive/2020/12/08/14100836.html
标签:SQL,Server,建表,CREATE,TABLE,权限
0
投稿
猜你喜欢
对pyqt5之menu和action的使用详解
2022-03-12 23:00:37
python中的随机数 Random介绍
2022-05-08 09:49:03
让javascript加载速度倍增的方法(解决JS加载速度慢的问题)
2024-04-19 11:03:22
MYSQL主从数据库同步备份配置的方法
2024-01-23 15:03:43
MySQL数据库INNODB表损坏修复处理过程分享
2024-01-16 10:59:56
给Linux定时备份数据库的实现脚本
2024-01-15 09:15:22
SQL Server 2005 SP3正式版下载
2008-12-16 12:42:00
vue中异步数据获取方式(确保数据被获取)
2024-05-09 15:23:07
python字符串连接方式汇总
2021-08-19 23:46:14
Python实现图片滑动式验证识别方法
2023-11-05 22:14:52
Python OS模块实例详解
2022-11-18 07:56:01
一文带你吃透什么是PHP中的序列化
2023-06-12 19:44:20
秒杀场景的缓存、队列、锁使用Redis优化设计方案
2023-05-29 19:07:18
python PaddleOCR库用法及知识点详解
2023-02-04 16:01:03
重写django的model下的objects模型管理器方式
2023-04-24 15:10:14
详解flask入门模板引擎
2023-06-27 00:05:41
用python求一个数组的和与平均值的实现方法
2021-01-10 20:11:24
python如何创建TCP服务端和客户端
2021-05-20 04:52:52
查找python项目依赖并生成requirements.txt的方法
2021-11-27 20:41:43
基于python的多进程共享变量正确打开方式
2022-02-12 10:30:53