SQL Server2000的安全策略(3)

时间:2007-08-06 17:14:00 

五、分配权限

实施安全策略的最后一个步骤是创建用户定义的数据库角色,然后分配权限。完成这个步骤最简单的方法是创建一些名字与全局组名字配套的角色。例如对于前面例子中的会计系统,我们可以创建accounting Data Entry Operators、Accounting Data Entry Managers之类的角色。由于会计数据库中的角色与帐务处理任务有关,你可能想要缩短这些角色的名字。然而,如果角色名字与全局组的名字配套,你可以减少混乱,能够更方便地判断出哪些组属于特定的角色。

创建好角色之后就可以分配权限。在这个过程中,我们只需用到标准的GRANT、REVOKE和DENY命令。但应该注意DENY权限,这个权限优先于所有其他权限。如果用户是任意具有DENY权限的角色或者组的成员,SQL Server将拒绝用户访问对象。

接下来我们就可以加入所有SQL Server验证的登录。用户定义的数据库角色可以包含SQL Server登录以及NT全局组、本地组、个人帐户,这是它最宝贵的特点之一。用户定义的数据库角色可以作为各种登录的通用容器,我们使用用户定义角色而不是直接把权限分配给全局组的主要原因就在于此。


由于内建的角色一般适用于整个数据库而不是单独的对象,因此这里建议你只使用两个内建的数据库角色,,即db_securityadmin和db_owner。其他内建数据库角色,例如db_datareader,它授予对数据库里面所有对象的SELECT权限。虽然你可以用db_datareader角色授予SELECT权限,然后有选择地对个别用户或组拒绝SELECT权限,但使用这种方法时,你可能忘记为某些用户或者对象设置权限。一种更简单、更直接而且不容易出现错误的方法是为这些特殊的用户创建一个用户定义的角色,然后只把那些用户访问对象所需要的权限授予这个用户定义的角色。

六、简化安全管理

SQL Server验证的登录不仅能够方便地实现,而且与NT验证的登录相比,它更容易编写到应用程序里。但是,如果用户的数量超过25,或者服务器数量在一个以上,或者每个用户都可以访问一个以上的数据库,或者数据库有多个管理员,SQL Server验证的登录不容易管理。由于SQL Server没有显示用户有效权限的工具,要记忆每个用户具有哪些权限以及他们为何要得到这些权限就更加困难。即使对于一个数据库管理员还要担负其他责任的小型系统,简化安全策略也有助于减轻问题的复杂程度。因此,首选的方法应该是使用NT验证的登录,然后通过一些精心选择的全局组和数据库角色管理数据库访问。

下面是一些简化安全策略的经验规则:

用户通过SQL Server Users组获得服务器访问,通过DB_Name Users组获得数据库访问。

用户通过加入全局组获得权限,而全局组通过加入角色获得权限,角色直接拥有数据库里的权限。

需要多种权限的用户通过加入多个全局组的方式获得权限。

只要规划得恰当,你能够在域控制器上完成所有的访问和权限维护工作,使得服务器反映出你在域控制器上进行的各种设置调整。虽然实际应用中情况可能有所变化,但本文介绍的基本措施仍旧适用,它们能够帮助你构造出很容易管理的安全策略。

标签:SQLServer2000,安全策略
0
投稿

猜你喜欢

  • asp中数组的用法

    2008-05-12 22:29:00
  • Python实现拼音转换

    2023-03-28 06:25:34
  • python 中的np.zeros()和np.ones()函数详解

    2023-01-14 10:23:58
  • python中yaml配置文件模块的使用详解

    2021-06-05 08:06:45
  • vue中Npm run build 根据环境传递参数方法来打包不同域名

    2024-04-27 16:17:22
  • python傅里叶变换FFT绘制频谱图

    2023-06-30 09:44:07
  • SqlServer将查询结果转换为XML和JSON

    2024-01-18 20:25:59
  • 详解vue-router 动态路由下子页面多页共活的解决方案

    2024-04-27 16:01:22
  • 解决PyCharm不运行脚本,而是运行单元测试的问题

    2023-04-12 01:08:53
  • MySQL 存储过程的基本用法介绍

    2024-01-20 15:56:33
  • 好友列表利用率越高,社区越失败

    2008-04-10 12:22:00
  • JavaScript打开客户端exe文件的代码

    2024-04-17 09:49:27
  • pycharm实现猜数游戏

    2023-01-14 19:04:49
  • Django实现分页显示效果

    2021-12-04 14:01:37
  • python使用SQLAlchemy操作MySQL

    2024-01-16 19:11:11
  • SqlServer获取存储过程返回值的实例

    2024-01-21 00:53:35
  • 详解python实现多张多格式图片转PDF并打包成exe

    2022-06-16 15:43:38
  • 利用脚本自动安装SQLServer的实现步骤分析

    2024-01-22 20:02:11
  • javascript实现炫酷的拖动分页

    2024-06-19 01:46:04
  • 浅谈为什么#{}可以防止SQL注入

    2024-01-27 07:19:08
  • asp之家 网络编程 m.aspxhome.com