重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
sqlserver可以通过设置表权限来限制用户访问:
10年专注成都网站制作,成都定制网站,个人网站制作服务,为大家分享网站制作知识、方案,网站设计流程、步骤,成功服务上千家企业。为您提供网站建设,网站制作,网页设计及定制高端网站建设服务,专注于成都定制网站,高端网页制作,对围栏护栏等多个行业,拥有多年的营销推广经验。
在Management Studio中的表上右键选属性(Properties),左边选权限(Permissions),右边中间添加和选中某个User或Role,下面选中或移除某个权限。同样你可用标准的赋权语句来实现:如
grant/revoke select on 表名 to 用户名。
-- sqlserver:一、操作步骤
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:其它对象类型)
创建好用户后,几个需要赋权限的地方,写出来以备后用。
1.在安全性用户属性中,登录用户的服务器角色为public
2.
用户映射到数据的数据库角色成员身份为:db_owner和public,默认架构为dbo
3.
状态为允许连接到数据引擎和登录
在允许访问的数据库属性权限中,创建用户权限
1.加上读取、更新、删除,
2.加上控制和连接复制这两个,用户可以在sql
server管理界面中直接连接,
3.加上更改任意架构,用户可以修改表结构
把其他的权限设为拒绝,这样他就只有读取、更新、删除,及修改表结构的权限
方法一、由Management
Studio中的表上右键选属性(Properties),左边选权限(Permissions),右边中间添加和选中某个User或Role,下面选中或移除某个权限。
方法二、语句
:
Grant
权限
On
table
表名
To
用户名
1. 查看 SQL 2005 用户所属数据库角色
use yourdb
go
select DbRole = g.name, MemberName = u.name, MemberSID = u.sid
from sys.database_principals u, sys.database_principals g, sys.database_role_members m
where g.principal_id = m.role_principal_id
and u.principal_id = m.member_principal_id
order by 1, 2
go
2. 查看 SQL 2005 登陆帐户所属服务器角色
use master
go
select SrvRole = g.name, MemberName = u.name, MemberSID = u.sid
from sys.server_principals u, sys.server_principals g, sys.server_role_members m
where g.principal_id = m.role_principal_id
and u.principal_id = m.member_principal_id
order by 1, 2
go
3. 查看 SQL 2005 用户被赋予的权限
use yourdb
go
exec sp_helprotect @username = 'user name'
go
1、为角色赋予jobs表的所有权限
GRANT ALL ON jobs TO newrole
2、为角色赋予sales表的查、改权限
GRANT SELECT,UPDATE ON sales TO newrole
临时表可以被任何用户在任何数据库下创建,而不需要授予任何权限。
本地临时表只能被创建它的会话访问。全局临时表可以被所有会话访问和修改,而不需要授权。