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

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

第一步:创建用户

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

第二步:设置用户映射

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

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

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

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

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

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

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

第五步:检查权限

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

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

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

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

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

相关推荐
全栈小516 天前
【数据库】零门槛在线体验KingbaseES平台,SQL Server模式高阶玩法,动态创建数据体验函数、存储过程等功能
数据库·sql server·金仓·kingbasees平台
夜光小兔纸19 天前
SQL Server 查询所有表数据量
数据库·sql·sql server
夜光小兔纸21 天前
SQL Server 查询数据库中所有表中所有字段的数据类型及长度
数据库·sql·sql server
夜光小兔纸23 天前
SQL Server 修改数据库名及物理数据文件名
运维·数据库·sql server
Waloo1 个月前
STUFF 函数
数据库·sql server
夜光小兔纸2 个月前
SQL Server 数据库重命名
运维·数据库·sql server
只有努力才会成功2 个月前
数据库-SQL Server
sql server
Alan521593 个月前
Java + SQLServer:一键导出数据库表结构为 Markdown 文档
java·sql server
梓芮.3 个月前
T-SQL 语言基础: 集合运算(Union, Intersect, Except)
sql server·t-sql·t-sql 子查询·ms sql·t-sql 集合运算·t-sql 集合交集差集·t-sql 集合 并集
全栈小53 个月前
【Sql Server】在SQL Server中生成雪花ID(Snowflake ID)
sql server·雪花id