SqlServer创建只能访问视图的账户

引言

最近接了一个任务,写了一个视图,提供给第三方查询数据。问题来了,本公司的数据库只有一个主账号,不能直接把这个账号人给第三方吧,那样的话,里面的隐私数据被别人看个爽,个别坏心思的,还有可能删除篡改业务数据,这个方法安全隐患很大。所以当务之急,是搞一个只能查询视图的账号出来,把这个账号提供给第三方,这样就高枕无忧了。注意,以下操作只适用于SqlServer数据库。

创建账户

打开SqlServer Management Studio(SSMS),使用sa账户或Windows身份验证登录到数据库实例

点击 安全性 - 登录名,右键菜单选择 新建登录名, 打开‘新建登录名’
对话框

在常规页中:

  • 输入用户名,这里是‘guest01’.
  • 验证方式选择‘SQL Server 身份验证’,输入密码,确认密码
  • 取消勾选:‘强制实施密码策略’,‘强制密码过期’
  • ‘默认数据库’选择该账号将访问的数据库

在用户映射页中:

  • 勾选账户能访问的数据库名,自动带入账号名,点击此行’默认架构‘右侧的按钮
  • 在弹出的’选择架构‘对话框中,点击浏览
  • 在’查找对象‘列表中勾选 ’dbo‘,确定
  • 返回父级窗口,点击确定

在安全对象页中:

  • 点击搜索,在’添加对象‘对话框中选择’服务器"MS....SQL2008"‘,点击确定
  • 加载该服务器的权限后,找到’连接SQL‘这一行,在’授予‘列打勾


创建登录名 的步骤已完成,点击确定。

分配权限

找到账户能够访问的数据库,依次点击 安全性 - 用户,找到刚创建的用户名,右键属性,打开数据库用户属性对话框

检查 拥有的架构成员身份 两页面,确保没有勾选任何东西!

选择 ’安全对象‘页,点击’搜索‘

选择’特定对象‘,点击确定

点击’对象类型‘,在列表中选择’视图‘
点击’浏览‘,在列表中勾选这个账户能够访问的视图名称,点击确定

回到此页面,在下方列表找到’选择‘这一行,在’授予‘列打勾,点击确定

一顿操作之后,账户的创建和权限分配都完成了
可以用这个账户登陆,看看效果

posted @ 2022-07-19 14:33  雨过天晴1993  阅读(1616)  评论(0编辑  收藏  举报