代码之家  ›  专栏  ›  技术社区  ›  ConsultUtah

在SQL Server中,授予对数据库中表的读写访问权的T-SQL是什么?

  •  64
  • ConsultUtah  · 技术社区  · 16 年前

    要分配的确切SQL是什么 db_datareader db_datawriter 角色到SQL Server中的用户?

    用户名是 MYUSER 数据库是 MYDB .

    3 回复  |  直到 7 年前
        1
  •  95
  •   sventevit    8 年前

    在SQL Server 2012、2014中:

    USE mydb
    GO
    
    ALTER ROLE db_datareader ADD MEMBER MYUSER
    GO
    ALTER ROLE db_datawriter ADD MEMBER MYUSER
    GO
    

    在SQL Server 2008中:

    use mydb
    go
    
    exec sp_addrolemember db_datareader, MYUSER 
    go
    exec sp_addrolemember db_datawriter, MYUSER 
    go
    

    还要为数据库分配执行所有存储过程的能力:

    GRANT EXECUTE TO MYUSER;
    

    要分配执行特定存储过程的能力:

    GRANT EXECUTE ON dbo.sp_mystoredprocedure TO MYUSER;
    
        2
  •  11
  •   dani herrera    11 年前

    从SQLServer 2012更优雅 alter role :

    use mydb
    go
    
    ALTER ROLE db_datareader
      ADD MEMBER MYUSER 
    go
    ALTER ROLE db_datawriter
      ADD MEMBER MYUSER 
    go
    
        3
  •  0
  •   Community dbr    7 年前

    最好创建一个新角色,然后授予执行权限,选择…ETC对此角色的权限,并最终将用户分配给此角色。

    创建角色

    CREATE ROLE [db_SomeExecutor] 
    GO
    

    授予此角色权限

    GRANT EXECUTE TO db_SomeExecutor
    GRANT INSERT  TO db_SomeExecutor
    

    若要添加用户数据库>安全性>>角色>数据库角色>属性>添加(右下角),可以搜索广告用户,然后添加

       EXEC sp_addrolemember 'db_SomeExecutor', 'domainName\UserName'
    

    请参考这个 post