• 如何分配数据库角色权限


      1 sql server2005安全管理之用户、角色、架构 与 权限 
      2 2008-12-04 16:47 
      3 --打开数据库 
      4 Use databaseName 
      5 
      6 --创建角色 
      7 create role ProgramerRole 
      8 
      9 --用于创建表 存储过程 视图 
     10 grant create table,create procedure,create view to ProgramerRole 
     11 
     12 --execute用以执行存储过程,alter用以创建、修改存储过程和视图, 
     13 --并可以新建立表,但不能修改表,但也可以删除表和对表改名了 
     14 grant select,insert,execute,alter on schema::dbo to ProgramerRole 
     15 
     16 --用于允许用户查看 显示估计的执行计划(081205) 
     17 grant showplan to ProgramerRole 
     18 
     19 --创建登录账号 
     20 --create login username with password='password' 
     21 --创建数据库用户 
     22 create user username for login username 
     23 
     24 --将用户TestUser添加到TestRole角色中 
     25 exec sp_addrolemember 'ProgramerRole','username ' 
     26 
     27 --执行Sql Server Profiler是服务器级权限,所以在master库中授权 
     28 USE master;grant alter trace to auto; 
     29 
     30 
     31 注:据库引擎优化顾问必须由具有系统管理员权限的用户进行初始化。在具有系统管理员权限的用户对数据库引擎优化顾问进行初始化之后,任何是 db_owner 固定数据库角色成员的用户,都可以使用数据库引擎优化顾问来优化他们拥有的数据库上的表。 
     32 详优化物理数据库设计http://msdn.microsoft.com/zh-cn/library/ms191531(SQL.90).aspx 
     33 
     34 参考资料: 
     35 用户架构分离:http://msdn.microsoft.com/zh-cn/library/ms190387(SQL.90).aspx 
     36     数据库架构是一个独立于数据库用户的非重复命名空间。您可以将架构视为对象的容器 
     37 主体:http://msdn.microsoft.com/zh-cn/library/ms181127(SQL.90).aspx 
     38       是可以请求 SQL Server 资源的实体 
     39     
     40 Windows 级别的主体 
     41 
     42 Windows 域登录名 
     43 Windows 本地登录名 
     44 SQL Server 级的主体 
     45 
     46 SQL Server 登录名 
     47 数据库级的主体 
     48 
     49 数据库用户 
     50 数据库角色 
     51 应用程序角色 
     52 安全对象:http://msdn.microsoft.com/zh-cn/library/ms190401(SQL.90).aspx 
     53 安全对象是 SQL Server 数据库引擎 授权系统控制对其进行访问的资源    
     54 安全对象范围有服务器、数据库和架构 
     55 安全对象范围:服务器包含以下安全对象: 
     56 端点 
     57 登录帐户 
     58 数据库 
     59 
     60 安全对象范围:数据库包含以下安全对象: 
     61 用户 
     62 角色 
     63 应用程序角色 
     64 程序集 
     65 消息类型 
     66 路由 
     67 服务 
     68 远程服务绑定 
     69 全文目录 
     70 证书 
     71 非对称密钥 
     72 对称密钥 
     73 约定 
     74 架构 
     75 
     76 安全对象范围:架构包含以下安全对象: 
     77 类型 
     78 XML 架构集合 
     79 对象 
     80 
     81 对象 下面是对象类的成员: 
     82 聚合 
     83 约束 
     84 函数 
     85 过程 
     86 队列 
     87 统计信息 
     88 同义词 
     89  90 视图 
     91 
     92 架构:http://msdn.microsoft.com/zh-cn/library/ms365789(SQL.90).aspx 
     93 架构是指包含表、视图、过程等的容器。它位于数据库内部,而数据库位于服务器内部 
     94 特定架构中的每个安全对象都必须有唯一的名称。架构中安全对象的完全指定名称包括此安全对象所在的架构的名称。因此,架构也是命名空间 
     95 
     96 权限:http://msdn.microsoft.com/zh-cn/library/ms190387(SQL.90).aspx 
     97 每个 SQL Server 2005 安全对象都有可以授予主体的关联权限 
     98 
     99 数据库级别的角色:http://msdn.microsoft.com/zh-cn/library/ms189121(SQL.90).aspx 
    100 固定数据库角色是在数据库级别定义的,并且存在于每个数据库中。db_owner 和 db_securityadmin 数据库角色的成员可以管理固定数据库角色成员身份;但是,只有 db_owner 数据库的成员可以向 db_owner 固定数据库角色中添加成员。 
    101 每个数据库用户都属于 public 数据库角色。当尚未对某个用户授予或拒绝对安全对象的特定权限时,则该用户将继承授予该安全对象的 public 角色的权限    
    102 服务器级别角色:http://msdn.microsoft.com/zh-cn/library/ms188659(SQL.90).aspx 
    103 固定服务器角色在其作用域内属于服务器范围。固定服务器角色的每个成员都可以向其所属角色添加其他登录名。 
    104 
    105 GRANT 架构权限:http://msdn.microsoft.com/zh-cn/library/ms187940(SQL.90).aspx 
    106 
    107 如何配置用户以创建和管理 SQL Server 代理作业 http://msdn.microsoft.com/zh-cn/library/ms187901.aspx 
    108 
    109 若要配置用户以创建或执行 Microsoft SQL Server 代理作业,必须先将某个现有 SQL Server 登录名或 msdb 角色添加到 msdb 数据库中的下列 SQL Server 代理固定数据库角色之一:SQLAgentUserRole、SQLAgentReaderRole 或 SQLAgentOperatorRole。 
    110 
    111 默认情况下,这些数据库角色的成员可以创建各自的作业步骤,这些作业步骤不执行其他作业步骤。如果这些非管理用户要运行那些执行其他作业步骤类型(例如,SSIS 包)的作业,它们需要对代理帐户具有访问权限。sysadmin 固定服务器角色的所有成员都有创建、修改和删除代理帐户的权限
    112 
    113 
    114 
    115 
    116 
    117 
    118 为具体的用户设置具体的访问权限 收藏 
    119 use 你的库名
    120 go
    121 
    122 --新增用户
    123 exec sp_addlogin 'test'            --添加登录
    124 exec sp_grantdbaccess N'test'            --使其成为当前数据库的合法用户
    125 exec sp_addrolemember N'db_owner', N'test'            --授予对自己数据库的所有权限
    126 
    127 --这样创建的用户就只能访问自己的数据库,及数据库中包含了guest用户的公共表
    128 go
    129 
    130 --删除测试用户
    131 exec sp_revokedbaccess N'test'            --移除对数据库的访问权限
    132 exec sp_droplogin N'test'            --删除登录
    133 
    134 
    135 如果在企业管理器中创建的话,就用:
    136 
    137 企业管理器--安全性--右键登录--新建登录
    138 
    139 常规项
    140 --名称中输入用户名
    141 --身份验证方式根据你的需要选择(如果是使用windows身份验证,则要先在操作系统的用户中新建用户)
    142 --默认设置中,选择你新建的用户要访问的数据库名
    143 
    144 服务器角色项
    145 这个里面不要选择任何东西
    146 
    147 数据库访问项
    148 勾选你创建的用户需要访问的数据库名
    149 数据库角色中允许,勾选"public","db_ownew"
    150 
    151 确定,这样建好的用户与上面语句建立的用户一样
    152 ---------------------------------------------------------------------------
    153 
    154 最后一步,为具体的用户设置具体的访问权限,这个可以参考下面的最简示例:
    155 
    156 --添加只允许访问指定表的用户:
    157 exec sp_addlogin '用户名','密码','默认数据库名'
    158 
    159 --添加到数据库
    160 exec sp_grantdbaccess '用户名'
    161 
    162 --分配整表权限
    163 GRANT SELECT , INSERT , UPDATE , DELETE ON table1 TO [用户名]
    164 
    165 --分配权限到具体的列
    166 GRANT SELECT , UPDATE ON table1(id,AA) TO [用户名]
  • 相关阅读:
    优先内向树扩张算法 学习笔记
    BalticOI 2020 做题记录
    JOI Open 2020 做题记录
    CEOI2020做题记录
    NOI2020游记
    最长和谐子序列(力扣第594题)
    下一个更大元素系列(力扣第739题、503题)
    Trie字典树的实现(力扣第208题)
    Scala中的嵌套类
    将有序数组转换为二叉搜索树(力扣第108题)
  • 原文地址:https://www.cnblogs.com/lxshanye/p/3416154.html
Copyright © 2020-2023  润新知