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

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

第一步:创建用户

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

第二步:设置用户映射

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

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

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

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

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

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

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

第五步:检查权限

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

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

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

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

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

相关推荐
tangdou3690986551 个月前
Docker系列-超级详细教你Linux安装并使用docker compose,如何使用docker-compose安装sqlserver
docker·容器·sql server
tangdou3690986551 个月前
手把手非常详细图文并茂教你 Docker 部署 SQL Server
docker·容器·sql server
假装我不帅2 个月前
datagrip链接sql server2005报错
sql server·datagrip
桦仔2 个月前
数据库中查询含有某个emoji表情的行数据
mysql·sql server·emoji
野老杂谈2 个月前
2.2 Oracle与SQL Server简介
数据库·oracle·sql server·数据库管理系统·数据库对比
CN.LG3 个月前
浅谈Sql Server 索引
数据库·sql·sql server·索引
martian6654 个月前
C#程序调用Sql Server存储过程异常处理:调用存储过程后不返回、不抛异常的解决方案
数据库·c#·sql server·存储过程异常
爱编程的喵喵4 个月前
SQL Server 2022从入门到精通
数据库·sql server·入门到精通·优质书籍推荐
.NET快速开发框架4 个月前
玩转数据库索引
oracle·sql server·开发技术·实用数据库技术