民工心事 发表于 2024-10-31 12:46:42

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

我们在给数据库用户赋予权限时,有时候不想让该用户看到太多过程表和过程视图,这时就需要限定用户的访问权限
第一步:创建用户
创建数据库连接后,进入安全性——登录名,单击右键,新建登录名,并设置默认数据库
https://img2024.cnblogs.com/blog/1244268/202410/1244268-20241030170418475-1695764115.png
https://img2024.cnblogs.com/blog/1244268/202410/1244268-20241030170623903-659765087.png
第二步:设置用户映射
点击用户映射,勾选指定要访问的数据库,数据库成员身份默认为public,无需更改,然后单击确定
https://img2024.cnblogs.com/blog/1244268/202410/1244268-20241030171058232-804906181.png
这时候,我们可以看到指定的数据库用户中增加了刚刚新增的用户
https://img2024.cnblogs.com/blog/1244268/202410/1244268-20241030171245616-1905276530.png
 
第三步:设置只能访问指定的数据表或视图
指定数据库——安全性——用户——需要指定的用户,单击右键——属性——安全对象——搜索——特定对象——对象类型(选择自己需要指定用户访问的对象类型,我这里选择的是视图),然后点击浏览,勾选需要给用户授权访问的视图,确定即可
https://img2024.cnblogs.com/blog/1244268/202410/1244268-20241030171551704-1311664075.png
https://img2024.cnblogs.com/blog/1244268/202410/1244268-20241030171840407-1823199403.png
https://img2024.cnblogs.com/blog/1244268/202410/1244268-20241030172018021-1976929522.png
https://img2024.cnblogs.com/blog/1244268/202410/1244268-20241030172122196-1351966743.png
https://img2024.cnblogs.com/blog/1244268/202410/1244268-20241030172214703-1847534462.png
第四步:给指定表或视图赋予具体权限
如果是只读,则只需要勾选“选择”权限,设置好后点击确定即可
注意:这里需要每张表或视图逐一设置
https://img2024.cnblogs.com/blog/1244268/202410/1244268-20241030172408302-1230983928.png
第五步:检查权限
用刚刚新增的用户登录数据库,我们发现只能看到改数据库下刚刚赋予权限的视图,其他的表和视图都不可见,到达目标
https://img2024.cnblogs.com/blog/1244268/202410/1244268-20241030172610387-261410594.png
 
看很多其他的文章,都说要做这步设置
USE
GO
EXEC dbo.sp_changedbowner N'JT'  实践证明,实行了这条语句之后,后面如果想删除该用户会遇到各种奇葩的错误提示导致用户无法删除,这时候只需要再重新将owner的权限赋值给sa,然后就可以顺利删除自己新建的用户啦
USE
GO
EXEC dbo.sp_changedbowner N'sa'  

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: SQL Server创建用户只能访问指定数据库和视图