SQL Server 2005 控制用户权限访问表

  一、需求

  在管理数据库过程中,我们经常需要控制某个用户访问数据库的权限,比如只需要给这个用户访问某个表的权限,甚至是CRUD的权限,更小粒度的还可以去到某几个字段的访问权限。写这篇文章就是说明下这个操作过程。

  其实这只是SQL Server权限管理很简单的一小块,有些地方并没有深入理解和讲述,只是希望对一些刚入门的童鞋有帮助,其它大侠就当是:我当堂吓一跳,然后得啖笑。(赌圣)

  二、操作步骤

  1. 首先进入数据库级别的【安全性】-【登录名】-【新建登录名】


  (图1:新建登录名)

  2. 在【常规】选项卡中,如下图所示,创建登陆名,并设置默认的数据库


  (图2:设置选项)

  3. 在【用户映射】选项卡中,如下图所示,勾选需要设置的数据库,并设置【架构】,点击【确认】按钮,完成创建用户的操作


  (图3:选择对应数据库)

  4. 现在我们就可以对TestLog数据库中的User表进行权限的设置了,【表】-【 属性】


  (图4:选择对应表)

  5. 在【权限】选项卡中,如下图所示,依此点击【添加】-【浏览】-【选择对象】


  (图5:设置访问表的用户)

  6. 在上面点击【确认】后,我们就可以下面的列表中找到对应的权限,如果你还想细化到列的权限的话,右下角还有一个【列权限】的按钮可以进行设置,点击【确认】按钮就完成了这些权限的设置了


  (图6:权限列表)

  7. 现在就使用TestUser用户登陆数据库了,登陆后如下图所示,现在只能看到一个表了


  (图7:效果)

  三、注意事项

  1. 在上面的第3步骤中需要注意:如果这里没有选择对应的数据库的话,之后去TestLog数据库中是找不到TestUser。


  (图8:找不到TestUser用户)

  2. 在上面的第3步骤,设置完TestLog数据后,需要点击【确认】按钮,完成创建用户操作,如果这个时候去设置【安全对象】,是无法在【添加】-【特定对象】-【对象类型】-【登陆名】-【浏览】中找到刚刚新建的TestUser用户的。

  3. 其实在数据库级别的【安全性】创建的用户是属于全局的,当设置了某个数据库,比如TestLog之后,这个用户就会出现在这个数据库的【安全性】列表中。 如果删除TestLog这个用户,会出现下面的提示。删除了后,这个用户就无法登陆了。需要去对应的数据库中删除用户,如果没有删除又创建,是会报错的。


  (图9:删除TestUser用户)

  4. 在第6步的【显式权限】列表中,如果选择了【Control】这个选项,那么在【Select】中设置查询【列权限】就没有意义了,查询就不会受限制了。如果设置【列权限】,在正常情况下会显示下图的报错信息:


  (图10:效果)

  5. 在TestLog数据库的【安全性】-【TestUser】-【属性】-【安全对象】-【添加】-【对象类型】这里有更多关于数据库级别的一些对象类型可以设置。


  (图11:其它对象类型)

  (来源:http://gaizai.cnblogs.com/  作者:听风吹雨)

时间: 2024-12-04 10:05:52

SQL Server 2005 控制用户权限访问表的相关文章

SQLServer 2005 控制用户权限访问表图文教程_mssql2005

一.需求 在管理数据库过程中,我们经常需要控制某个用户访问数据库的权限,比如只需要给这个用户访问某个表的权限,甚至是CRUD的权限,更小粒度的还可以去到某几个字段的访问权限.写这篇文章就是说明下这个操作过程. 其实这只是SQL Server权限管理很简单的一小块,有些地方并没有深入理解和讲述,只是希望对一些刚入门的童鞋有帮助,其它大侠就当是:我当堂吓一跳,然后得啖笑.(赌圣) 二.操作步骤 1. 首先进入数据库级别的[安全性]-[登录名]-[新建登录名] (图1:新建登录名) 2. 在[常规]选

安装SQL Server 2005 express没有权限,sa不能登录问题。

1,首先赋予权限,在开始里面找到  sql server 2005 配置工具中的sql server外围应用配置器   点击确定.这时就有权限了.   2.使用SQL Server身份验证登录时报错:无法连接到./SQLEXPRESS.Additional information:用户'sa'登录失败.该用户与可信SQL Server 连接无关联.(microsoft SQL Server,Error:18452))------------------下面是映射时报的错:创建对于用户"sa&qu

SQL Server 2005/2008 用户数据库文件默认路径和默认备份路径修改方法

以下仅为参照,如果有多个实例,可能会有些许不同: 本环境是SQL Server 2005 Standard Version 64-bit 和 SQL Server 2008 Standard Version 64-bit 双实例同时安装在一个 Windows Server 2008 Standard Version 64-bit OS上: 代码 复制代码 代码如下: Windows Server 2008 Standard Version 64-bit SQL Server 2005 Stand

使用SQL语句赋予SQL Server数据库登录用户权限

server|数据|数据库|用户权限|语句 GRANT在安全系统中创建项目,使当前数据库中的用户得以处理当前数据库中的数据或执行特定的 Transact-SQL 语句.语法语句权限: GRANT { ALL | statement [ ,...n ] } TO security_account [ ,...n ] 对象权限: GRANT    { ALL [ PRIVILEGES ] | permission [ ,...n ] }    {         [ ( column [ ,...n

使用SQL语句取消SQL Server数据库登录用户权限

server|数据|数据库|用户权限|语句 REVOKE删除以前在当前数据库内的用户上授予或拒绝的权限.语法语句权限: REVOKE { ALL | statement [ ,...n ] } FROM security_account [ ,...n ] 对象权限: REVOKE [ GRANT OPTION FOR ]    { ALL [ PRIVILEGES ] | permission [ ,...n ] }    {         [ ( column [ ,...n ] ) ]

使用SQL语句获取SQL Server数据库登录用户权限

server|数据|数据库|用户权限|语句 sp_helprotect返回一个报表,报表中包含当前数据库中某对象的用户权限或语句权限的信息.语法sp_helprotect [ [ @name = ] 'object_statement' ]    [ , [ @username = ] 'security_account' ]    [ , [ @grantorname = ] 'grantor' ]    [ , [ @permissionarea = ] 'type' ]参数[@name =

修改SQL Server 2005执行环境

执行环境是SQL Server中设定用户权限的认证方式,例如,当您登录到SQL Server的时候,登录账户就被赋予了一定的权限,其中可能包括登录的功能.访问数据库以及在数据库中执行某些操作的功能. SQL Server 2005包含了EXECUTE AS语句,通过使用EXECUTE AS语句,您可以为批处理和过程转换执行环境,这样,调用该批处理或过程的用户就可以使用不同的权限来操作了. 所有权链 在我正式讲解SQL Server 2005中执行环境的问题之前,先来简单地说说所有权链的工作原理.

sql server 2005时发生18452错误解决方法

ODBC 测试sql server 2005时发生18452错误解决方法 用.net开发的网站连接数据库里发生错误,当访问静态页面里显示正常. 1.首先想到的是测试ODBC数据源,当用sql用户和密码登录时出现如下图错误: 2.因为是在客户服务器上安装,所以未设置sa的密码,由于安装时未勾选择了"windows身份验证",所以当你测试sql server 2005的用户时出现此错误. 3.打开"SQL Server Management Studio"双击数据库所在

SQL Server 2005 中的批编译、重新编译和计划缓存问题(1)

本文阐述了批处理在 SQL Server 2005 中的缓存和重用方式,并就最大限度重用已缓存的计划提供了相应的最佳实务.另外,文中还说明了一些重新编译批处理的方案,并针对减少或消除不必要的重新编译,给出了最佳实务. 一.本白皮书的目的 此白皮书的目的有几个.阐述了批处理在 SQL Server 2005 中的缓存和重用方式,并就最大限度重用已缓存的计划提供了相应的最佳实务.另外,文中还说明了一些重新编译批处理的方案,并针对减少或消除不必要的重新编译,给出了最佳实务.本白皮书阐述了 SQL Se