• 企业400电话
  • 网络优化推广
  • AI电话机器人
  • 呼叫中心
  • 全 部 栏 目

    网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    浅析SQL Server授予了CREATE TABLE权限但是无法创建表
    POST TIME:2021-10-18 17:59

    在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

    到此这篇关于浅析SQL Server授予了CREATE TABLE权限但是无法创建表的文章就介绍到这了,更多相关SQL Server无法创建表内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    您可能感兴趣的文章:
    • sql server建表时设置ID字段自增的简单方法
    • SqlServer编写数据库表的操作方式(建库、建表、修改语句)
    • sql server建库、建表、建约束技巧
    • SQL Server 2008 阻止保存要求重新创建表的更改问题的设置方法
    • Sql Server 创建数据库脚本Create DATABASE
    • CREATE FUNCTION sqlserver用户定义函数
    上一篇:SQL Server 批量插入数据的完美解决方案
    下一篇:SQLServer设置客户端使用IP地址登录的图文详解
  • 相关文章
  • 

    关于我们 | 付款方式 | 荣誉资质 | 业务提交 | 代理合作


    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    X

    截屏,微信识别二维码

    微信号:veteran88

    (点击微信号复制,添加好友)

     打开微信