创建角色,用户,权限只能访问指定数据库
2017-10-26 17:25
405 查看
==================================================
1,在sql server中选择好要操作的数据库
2,--当前数据库创建角色
exec sp_addrole 'seeview' --创建了一个数据库角色,名称为:[seeview]
3,--分配视图权限 GRANT SELECT ON veiw TO [角色]
--指定视图列表 指定seeview这个角色可以查看的视图表名称;也就是这个角色可以查看下面赋予这些视图信息,除此之外的所有的东西都看不到
GRANT SELECT ON v_viewname1 TOseeview
GRANT SELECT ON v_viewname2 TO seeview
4,--添加只允许访问指定视图的用户: exec sp_addlogin '登录名','密码','默认数据库名'
exec sp_addlogin 'per','p123','oa'
此处可能执行不了,要求密码强度,那就自己手工创建
5,--添加只允许访问指定视图的用户到rCRM角色中: exec sp_adduser '登录名','用户名','角色'
exec sp_adduser 'per','p123','seeview'
注:一次完成以上操作以后,就可以实现创建一个用户,并且只让这个用户查看指定视图中的信息。
=============================================
背景
客户的SQL Server实例上有多个厂商的数据库,每个数据库由各自的进行厂进行商维护,
为了限定不同厂商的维护人员只能访问自己的数据库,现需要给各个厂商限定权限,让他们登录SQL Server只能看到授权的数据库而无法看到其他数据库。
解决方案
1.先给不同的厂商创建不同的登录名(如下以一个厂商为例)
2.将登录名加入到public服务器角色中,然后点击确定
3.将public服务器角色的属性——>安全对象中取消查看所有数据库的权限
或者执行如下SQL:
REVOKE VIEW ANY DATABASE TO [public]
4.将待授权的数据库的dbowner指派给该用户
此时用'provider1'登录SQL Server,便只能看到指定的用户数据库了(系统数据库除外)
说明:
我之前希望在第2个步骤中设置登录名的用户映射来实现这个需求,如下图,但没有效果,登录到SQL Server后还是无法看到用户数据库,
所以才采用上述方法:
1,在sql server中选择好要操作的数据库
2,--当前数据库创建角色
exec sp_addrole 'seeview' --创建了一个数据库角色,名称为:[seeview]
3,--分配视图权限 GRANT SELECT ON veiw TO [角色]
--指定视图列表 指定seeview这个角色可以查看的视图表名称;也就是这个角色可以查看下面赋予这些视图信息,除此之外的所有的东西都看不到
GRANT SELECT ON v_viewname1 TOseeview
GRANT SELECT ON v_viewname2 TO seeview
4,--添加只允许访问指定视图的用户: exec sp_addlogin '登录名','密码','默认数据库名'
exec sp_addlogin 'per','p123','oa'
此处可能执行不了,要求密码强度,那就自己手工创建
5,--添加只允许访问指定视图的用户到rCRM角色中: exec sp_adduser '登录名','用户名','角色'
exec sp_adduser 'per','p123','seeview'
注:一次完成以上操作以后,就可以实现创建一个用户,并且只让这个用户查看指定视图中的信息。
=============================================
背景
客户的SQL Server实例上有多个厂商的数据库,每个数据库由各自的进行厂进行商维护,
为了限定不同厂商的维护人员只能访问自己的数据库,现需要给各个厂商限定权限,让他们登录SQL Server只能看到授权的数据库而无法看到其他数据库。
解决方案
1.先给不同的厂商创建不同的登录名(如下以一个厂商为例)
2.将登录名加入到public服务器角色中,然后点击确定
3.将public服务器角色的属性——>安全对象中取消查看所有数据库的权限
或者执行如下SQL:
REVOKE VIEW ANY DATABASE TO [public]
4.将待授权的数据库的dbowner指派给该用户
Use [xjcs] go EXEC dbo.sp_changedbowner N'provider1'
此时用'provider1'登录SQL Server,便只能看到指定的用户数据库了(系统数据库除外)
说明:
我之前希望在第2个步骤中设置登录名的用户映射来实现这个需求,如下图,但没有效果,登录到SQL Server后还是无法看到用户数据库,
所以才采用上述方法:
相关文章推荐
- SQL通过角色创建只能访问指定视图的用户
- MySQL创建数据库,授权用户访问权限,通过Navicat Premium进行连接
- mysql5.6创建新用户并给授权指定的数据库权限
- Oracle中管理用户(创建用户,用户加锁,用户解锁,修改用户密码,授权登录权限,撤销登录权限,授权连接权限,conn命令,创建角色,并为角色赋权限,将角色赋给指定用户)
- sqlserver 创建用户只能访问指定视图
- mysql创建新用户并给授权指定的数据库权限
- mysql限制用户只能访问指定数据库
- SQL语句创建登录名,数据库用户,数据库角色及分配权限:
- MYSQL 更改数据库data存储目录 创建用户 创建权限 设置远程访问的权限.
- MySQL中创建用户分配权限(到指定数据库或者指定数据库表中)
- oracle 创建一个用户,只能访问指定的对象
- MySQL创建用户,并设置指定访问数据库
- Mysql中使某个用户只能访问指定的数据库
- Mysql 新增用户可访问指定数据库所有权限
- Mysql中使某个用户只能访问指定的数据库
- MySQL创建用户并指定数据库权限
- Sql2008不同用户指定访问数据库的权限设置!
- Mysql中使某个用户只能访问指定的数据库
- Mysql 创建用户并只访问指定数据库