您当前位置:主页 > 资讯攻略 >
来源:未知
2022-03-01 12:48:52 浏览: 分类:资讯攻略

SQL Server权限的分配管理

sql server的权限分配是SQL Server安全策略的重要组成部分。下面详细介绍一下SQL Server的权限分配管理,希望对你有所帮助。

允许数据库访问

在数据库内部,与我们迄今为止处理登录验证的方式不同,我们可以将SQL Server权限分配给角色,而不是直接将它们分配给全局组。这种能力使我们可以很容易地在我们的安全策略中使用SQL Server身份验证登录。即使您从来不想使用SQL Server登录,本文仍然建议为角色分配权限,因为这样您就可以为将来可能发生的变化做好准备。

创建数据库后,我们可以使用sp _ grantdbaccess存储过程授权DB_Name用户组访问它。但是需要注意的是,sp _ grantdbaccess对应的sp_denydbaccess存储过程是不存在的,也就是说,你不能像拒绝访问服务器一样拒绝访问数据库。要拒绝数据库访问,我们可以创建另一个名为DB_Name Denied Users的全局组,授权它访问数据库,然后将其设置为db_denydatareader和db_denydatawriter角色的成员。注意SQL语句权限的分配。这里的角色只限制对对象的访问,而不是DDL(数据定义语言)命令。

与登录过程一样,如果访问标记中的任何SID已经在Sysusers系统表中注册,SQL将允许用户访问数据库。因此,我们可以授权用户通过他们的个人NT帐户SID,或者通过他们所属的一个(或多个)组的SID来访问数据库。为了简化管理,我们可以创建一个名为DB_Name Users的全局组,该组具有对SQL Server的数据库访问权限,但不授予对所有其他组的访问权限。这样,我们可以简单地通过在全局组中添加或删除成员来增加或减少数据库用户。

分配SQL Server权限

实现安全策略的最后一步是创建用户定义的数据库角色,然后分配权限。完成这一步最简单的方法是创建一些名称与全局组名称相匹配的角色。例如,对于前面示例中的会计系统,我们可以创建会计数据输入操作员和会计数据输入管理员等角色。由于会计数据库中的角色与会计任务相关,您可能希望缩短这些角色的名称。但是,如果角色的名称与全局组的名称匹配,则可以减少混淆,并更容易确定哪些组属于特定的角色。

一旦创建了角色,就可以分配权限。在这个过程中,我们只需要使用标准的授权、撤销和拒绝命令。但是您应该注意DENY权限,它优先于所有其他权限。如果用户是任何具有拒绝权限的角色或组的成员,SQL Server将拒绝用户访问该对象。

接下来,我们可以加入所有经过SQL Server验证的登录。用户定义的数据库角色可以包括SQL Server登录、NT全局组、本地组和个人帐户,这是它最有价值的特性之一。用户定义的数据库角色可用作各种登录的通用容器。这是我们使用用户定义的角色而不是直接将SQL Server权限分配给全局组的主要原因。

由于内置角色通常适用于整个数据库,而不是单个对象,因此建议您只使用两个内置数据库角色,即db_securityadmin和db_owner。其他内置数据库角色(如db_datareader)向数据库中的所有对象授予SELECT权限。虽然您可以使用db_datareader角色授予select权限,然后有选择地拒绝单个用户或组的SELECT权限,但使用此方法时,您可能会忘记为某些用户或对象设置权限。一种更简单、更直接且不易出错的方法是为这些特殊用户创建一个自定义角色,然后只授予这些用户访问该自定义角色的对象所需的权限。

关键词:SQL Server

优侠库网站每天提供最新最热门的安卓手机软件、游戏下载、分享热门手游资讯攻略教程、手机软件教程步骤,专注安卓手机游戏软件下载。

本文链接:http://www.123down.cn/gonglue/227174.html

攻略资讯
安卓软件