WEB开发网
开发学院数据库MSSQL Server SQL Server数据库安全规划全攻略 阅读

SQL Server数据库安全规划全攻略

 2007-05-15 09:31:56 来源:WEB开发网   
核心提示: 创建了数据库之后,我们可以用sp_grantdbaccess存储过程授权DB_Name Users组访问它,SQL Server数据库安全规划全攻略(6),但应该注意的是,与sp_grantdbaccess对应的sp_denydbaccess存储过程并不存在,这个权限优先于所有其他权限,如

创建了数据库之后,我们可以用sp_grantdbaccess存储过程授权DB_Name Users组访问它。但应该注意的是,与sp_grantdbaccess对应的sp_denydbaccess存储过程并不存在,也就是说,你不能按照拒绝对服务器访问的方法拒绝对数据库的访问。

如果要拒绝数据库访问,我们可以创建另外一个名为DB_Name Denied Users的全局组,授权它访问数据库,然后把它设置为db_denydatareader以及db_denydatawriter角色的成员。注意SQL语句权限的分配,这里的角色只限制对对象的访问,但不限制对DDL(Data Definition Language,数据定义语言)命令的访问。

正如对登录过程的处理,如果访问标记中的任意SID已经在Sysusers系统表登记,SQL将允许用户访问数据库。因此,我们既可以通过用户的个人NT帐户SID授权用户访问数据库,也可以通过用户所在的一个(或者多个)组的SID授权。

为了简化管理,我们可以创建一个名为DB_Name Users的拥有数据库访问权限的全局组,同时不把访问权授予所有其他的组。这样,我们只需简单地在一个全局组中添加或者删除成员就可以增加或者减少数据库用户。

五、分配权限

实施安全策略的最后一个步骤是创建用户定义的数据库角色,然后分配权限。完成这个步骤最简单的方法是创建一些名字与全局组名字配套的角色。例如对于前面例子中的会计系统,我们可以创建Accounting Data Entry Operators、Accounting Data Entry Managers之类的角色。

由于会计数据库中的角色与帐务处理任务有关,你可能想要缩短这些角色的名字。然而,如果角色名字与全局组的名字配套,你可以减少混乱,能够更方便地判断出哪些组属于特定的角色。

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

上一页  1 2 3 4 5 6 7  下一页

Tags:SQL Server 数据库

编辑录入:coldstar [复制链接] [打 印]
赞助商链接