sqlserver给指定用户授权访问指定表

一、   背景

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

二、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、用户授权成功,只能查看指定的视图。

原文地址:https://www.cnblogs.com/qy1234/p/9332849.html

时间: 2024-08-01 09:18:52

sqlserver给指定用户授权访问指定表的相关文章

sqlserver 创建用户只能访问指定视图

use crm --当前数据库创建角色 exec sp_addrole 'rapp' --分配视图权限 GRANT SELECT  ON veiw TO [角色] --指定视图列表 GRANT SELECT ON  v_city TO rapp GRANT SELECT ON  v_lp TO rapp GRANT SELECT ON  v_qy TO rapp go --添加只允许访问指定视图的用户: exec sp_addlogin '登录名','密码','默认数据库名' exec sp_a

oracle 创建一个用户,只能访问指定的对象

今天在开发接口时候,需要给接口开发公司提供一个ORACLE 用户,只能访问指定的表或视图,把过程记录到此 1.创建一个ORACLE 的用户 create user username identified by pws; 2.给用户授权   grant connect,resource to username;  grant select on 表或视图名 to username; 到此,这个用户就可以访问指定的表了,可是用户登录 在PLSQL中用 Select * from 表或视频图名;提示表

如何给VSFTP增加用户,只能访问指定目录

1 增加组 groupadd ftpgroup 2 修改/etc/vsftpd/vsftpd.conf 将底下三行 #chroot_list_enable=YES # (default follows) #chroot_list_file=/etc/vsftpd.chroot_list 改为 chroot_list_enable=YES # (default follows) chroot_list_file=/etc/vsftpd/chroot_list 3 增加用户 useradd -g f

linux下通过iptables只允许指定ip地址访问指定端口的设置方法

这篇文章主要介绍了linux下通过iptables只允许指定ip地址访问指定端口的设置方法,需要的朋友可以参考下. 首先,清除所有预设置 iptables -F#清除预设表filter中的所有规则链的规则 iptables -X#清除预设表filter中使用者自定链中的规则 其次,设置只允许指定ip地址访问指定端口 其次,设置只允许指定ip地址访问指定端口 iptables -A INPUT -s xxx.xxx.xxx.xxx -p tcp --dport 22 -j ACCEPT iptab

iptables只允许指定ip地址访问指定端口

首先,清除所有预设置 iptables -F#清除预设表filter中的所有规则链的规则 iptables -X#清除预设表filter中使用者自定链中的规则 其次,设置只允许指定ip地址访问指定端口 iptables -A INPUT -s xxx.xxx.xxx.xxx -p tcp --dport 22 -j ACCEPT iptables -A OUTPUT -d xxx.xxx.xxx.xxx -p tcp --sport 22 -j ACCEPT iptables -A INPUT

Oracle创建用户并给用户授权查询指定表或视图的权限

MSV31账户登录数据库进行如下操作: CREATE USER NORTHBOUND IDENTIFIED BY NORTHBOUND  DEFAULT TABLESPACE "TBS_DNINMSV31"  TEMPORARY TABLESPACE "TEMP2"  QUOTA UNLIMITED ON "TBS_DNINMSV31"; GRANT "CONNECT" TO NORTHBOUND; ALTER USER NO

转://Oracle A用户给B用户授权查询指定表或视图权限方案

用DNINMSV31账户登录数据库进行如下操作: CREATE USER NORTHBOUND IDENTIFIED BY NORTHBOUND DEFAULT TABLESPACE "TBS_DNINMSV31" TEMPORARY TABLESPACE "TEMP2" QUOTA UNLIMITED ON "TBS_DNINMSV31"; GRANT "CONNECT" TO NORTHBOUND;ALTER USER N

同一台 Centos (Linux)服务器设置多个sftp 账号,并限制用户只能访问指定文件路径

备注:本资源部份来源网络,本文章只是作为优化,整理,方便自己与需要的朋友查看. #=================================================================== 0. 我们需要创建一个用户组,专门用于sftp用户,每台Linux服务器建立一次sftp 用户组即可. groupadd sftpusers //这里表示创建 sftpusers组 #=================/// 第一个SFTP账号创建 //==============

用ChrootDirectory限制SFTP登录的用户只能访问指定目录且不能进行ssh登录

创建不能ssh登录的用户sftpuser1,密码用于sftp登录: sudo adduser sftpuser1 --home /sftp/sftpuser1 --shell /bin/false sudo nano /etc/ssh/sshd_config (执行man sshd_config查看配置说明) Ubuntu/Debian上把Subsystem sftp /usr/lib/openssh/sftp-server Redhat/CentOS上把Subsystem sftp /usr/