数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

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


发布日期:2024年04月08日
 
SQL Server 2005 控制用户权限访问表

需求

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

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

操作步骤

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

(图新建登录名)

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

(图设置选项)

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

(图选择对应数据库)

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

(图选择对应表)

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

(图设置访问表的用户)

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

(图权限列表)

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

(图效果)

注意事项

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

(图找不到TestUser用户)

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

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

(图删除TestUser用户)

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

(图效果)

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

(图其它对象类型)

上一篇:SQL Server上进行表设计时表的主键设计问题

下一篇:Sql Server系统数据库有什么作用