文章摘要
这篇文章介绍了如何在SQL Server中设置用户权限,以实现以下功能: 1. **限制用户访问特定数据库**:通过创建新用户并配置权限,允许用户仅访问指定数据库(如test库),而不显示其他数据库的内容。 2. **控制用户访问特定表和视图**:可以授予用户在特定表或视图上的读写权限(如只读select权限),使用户无法访问其他表或视图。 3. **方法一:权限授予**: - 创建用户名并映射到目标数据库。 - 授予用户特定的视图权限(如View_1视图)或表权限(如id、AA字段)。 - 用户登录后,只能查看指定的视图或表。 4. **方法二:服务器角色调整**: - 创建新用户并配置权限。 - 调整public角色,取消查看任意数据库的权限。 - 用户登录时,只能访问指定数据库(如test库)及其表和视图。 5. **注意事项**:如果用户试图访问其他数据库,可以通过删除账户并重新创建来解决。 文章通过实例展示了如何配置用户权限,确保第三方只能访问特定数据库和表。
目录前言1.设置用户只能查看数据库中特定的视图或表2.设置用户只能看到特定的数据库总结
在实际业务场景我们可能需要开放单独用户给第三方使用,并且不想让第三方看到与业务不相关的表或视图,我们需要在数据库中设置一切权限来实现此功能:
1.创建用户名 选择默认数据库 服务器角色默认为public 用户映射选择指定数据库


打开需要开放权限的数据库,这里我们选择test库
新建查询:
对用户qqq分配 View_1视图 只有 只读select权限
grant select on View_1 to qqq

–对用户分配指定表权限(读写删)
GRANT SELECT , INSERT , UPDATE , DELETE ON table1 TO [用户名]
–对用户分配指定表的列权限(读写删)
GRANT SELECT , UPDATE ON table1(id,AA) TO [用户名]
使用qqq登录
这时我们只能看到View_1视图,其它的表和视图看不见,且其它的数据库也无法操作

如果我们不想让用户看到其它的数据库我们可以使用此方案
1.创建用户名 选择默认数据库 服务器角色默认为public 用户映射选择指定数据库


2.设置public角色
安全性——服务器角色——找到public——属性——将服务器中的查看任意数据库 取消勾选

3.执行语句 设置新建的账户 能查看的数据库
USE test
go
EXEC dbo.sp_changedbowner N’qwe’
go
EXEC dbo.sp_changedbowner N’qwe’
如果提示以下错误,

那么开test这个数据库找到刚刚新建的用户删掉之后再去执行这个语句


然后再使用我们新建的qwe账户登录,这时就实现了只能查看test这个数据库,且能看到所有的表

到此这篇关于SQL Server如何设置用户只能访问特定数据库和访问特定表或视图的文章就介绍到这了,更多相关SQLServer设置用户只能访问特定数据库内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
您可能感兴趣的文章:SQL Server 2008 数据库中创建只读用户的方法Sql Server 2008数据库新建分配用户的详细步骤
© 版权声明
文章版权归作者所有,未经允许请勿转载。



