一、背景

外部公司的人授权访问我们公司的数据库,数据接口调用,要给他们建立查看指定的视图和授权的账号,因此要在数据库中,给指定用户授权访问指定表

二、sqlserver 脚本

---创建视图
CREATE VIEW [dbo].[View_RunningData]
AS
SELECT TOP (100) PERCENT a.areaorganize, c.F_FullName AS areaorganizeName, a.recorddate, d.F_ItemCode, d.F_ItemName, a.value
FROM dbo.ITEM_RECORD AS a LEFT OUTER JOIN
dbo.Sys_Organize AS c ON a.areaorganize = c.F_Id LEFT OUTER JOIN
dbo.Sys_ItemsDetail AS d ON a.itemid = d.F_Id LEFT OUTER JOIN
dbo.Sys_Items AS e ON d.F_ItemId = e.F_Id LEFT OUTER JOIN
dbo.Sys_Items AS f ON e.F_ParentId = f.F_Id
WHERE (f.F_EnCode = 'YXSJ')
ORDER BY a.recorddate, d.F_ItemCode

  

---指定指定用户授权访问指定表
exec sp_addrole 'seeview'
GRANT SELECT ON View_RunningData TO seeview
exec sp_addlogin 'yhsjjk','yh123','DA_Dev517'
exec sp_adduser 'yhsjjk','yh123','seeview'

  

三、 分析

1、 在sql server中选择好要操作的数据库角色。

2、 当前数据库创建角色(新建权限seeview)

  exec sp_addrole 'seeview' 

3、 给予创建角色的权限,分配视图权限

( 意思是指定视图列表 指定seeview这个角色可以查看的视图表名称;也就是这个角色可以查看下面赋予这些视图信息,除此之外的所有的东西都看不到)

   GRANT SELECT ON  View_RunningData TO seeview

 

4、 添加只允许访问指定视图的用户: exec sp_addlogin '登录名','密码','默认数据库名

注:此处可能执行不了,要求密码强度,那就自己手工创建

    exec sp_addlogin 'yhsjjk','yh123','DA_Dev517'

 

5、 添加只允许访问指定视图的用户到rCRM角色中: exec sp_adduser '登录名','用户名','角色'

  exec sp_adduser 'yhsjjk','yh123','seeview'

 

四、 操作步骤

1、选择要访问的数据库,执行视图脚本,视图创建成功。

2、给指定的用户授权访问指定表,点击执行数据脚本,脚本执行成功。

3、登陆名,密码创建成功。

4、用户授权成功,只能查看指定的视图。

最新文章

  1. TP框架执行流程分许
  2. Linux学习 :移植U-boot_2016.09到JZ2440开发板
  3. 转 listener.log文件过大导致oracle数据库连接非常慢
  4. A股各概念板块龙头股大全
  5. (安装linux操作系统)
  6. Mac上的软件使用介绍
  7. WriteTeacherObj
  8. [Codeforces]856D - Masha and Cactus
  9. .NetCore获取json文件配置内容
  10. Batch入门教程丨第二章:认识变量相关概念
  11. 使用spring:aop中修改增强方法中的参数
  12. Vxlan学习笔记——实现
  13. 史上最全脉搏心率传感器PulseSensor资料(电路图+中文说明书+最全源代码)
  14. Python-Log-note.md
  15. dotnet core瘦身发布
  16. django_simple_captcha使用笔记
  17. windows dos命令大全
  18. Distill详述「可微图像参数化」:神经网络可视化和风格迁移利器!
  19. Servlet------>ServletConfig和ServletContext
  20. Java性能优化的50个细节

热门文章

  1. SQL中的字母的大小写转换
  2. twitter ads_campaign management
  3. Microsoft.EntityFrameworkCore.Sqlite的学习
  4. word设置行距18磅
  5. Linux命令之rz命令与sz命令
  6. Java单例设计模式(实现Java的一个类只有一个对象)
  7. python Exception中的raise、assert
  8. 不要再混淆js的substring和substr了!(附js所有字符串方法)
  9. python requests post和get
  10. JDBC连接数据库的简单介绍