SQL Server创建用户只能访问指定数据库和视图

我们在给数据库用户赋予权限时,有时候不想让该用户看到太多过程表和过程视图,这时就需要限定用户的访问权限

第一步:创建用户

创建数据库连接后,进入安全性------登录名,单击右键,新建登录名,并设置默认数据库

第二步:设置用户映射

点击用户映射,勾选指定要访问的数据库,数据库成员身份默认为public,无需更改,然后单击确定

这时候,我们可以看到指定的数据库用户中增加了刚刚新增的用户

第三步:设置只能访问指定的数据表或视图

指定数据库------安全性------用户------需要指定的用户,单击右键------属性------安全对象------搜索------特定对象------对象类型(选择自己需要指定用户访问的对象类型,我这里选择的是视图),然后点击浏览,勾选需要给用户授权访问的视图,确定即可

第四步:给指定表或视图赋予具体权限

如果是只读,则只需要勾选"选择"权限,设置好后点击确定即可

注意:这里需要每张表或视图逐一设置

第五步:检查权限

用刚刚新增的用户登录数据库,我们发现只能看到改数据库下刚刚赋予权限的视图,其他的表和视图都不可见,达到目标

看很多其他的文章,都说要做这步设置

复制代码
USE [JTDataPatform]
GO
EXEC dbo.sp_changedbowner N'JT' 

实践证明,执行了这条语句之后,后面如果想删除该用户会遇到各种奇葩的错误提示导致用户无法删除,这时候只需要再重新将owner的权限赋值给sa,然后就可以顺利删除自己新建的用户啦

复制代码
USE [JTDataPatform]
GO
EXEC dbo.sp_changedbowner N'sa'

  

相关推荐
ClouGence12 天前
SQL Server CDC 能放到 Always On 备库读吗?一文讲透原理与实践
数据库·sql server
Daydream.V2 个月前
SQL Server 超详细入门教程
sql·sql server
betazhou2 个月前
SQL server 2017镜像库主从同步架构部署
架构·sql server·高可用·主从同步·镜像库
betazhou2 个月前
SQL server数据库镜像同步技术
数据库·sql server·高可用·数据库镜像
码农刚子2 个月前
.NET 8 Web开发入门(四):注入燃料——Entity Framework Core 与 Code First 实战
数据库·orm·sql server
CSharp精选营2 个月前
.NET 8 Web开发入门(四):注入燃料——Entity Framework Core 与 Code First 实战
orm·sql server·数据库迁移·ef core·entity framework core·crud操作·code first
陳錄生3 个月前
Emacs 读sql server数据库(数据cp936)中文乱码问题。
python·emacs·sql server
zxy28472253013 个月前
今年第二次碰上客户服务器操作系统废了-记一次sql server数据库恢复的过程
sql server·数据库备份·恢复·数据库恢复·数据库文件
绩隐金3 个月前
SQL Server 性能优化实战(第一期):索引——查询加速的基石
sql server
小猿姐3 个月前
# KubeBlocks for MSSQL 高可用实现
数据库·架构·sql server