问个sql server权限的问题

xx2 2019-02-13 09:32:54
想让 一个用户 只对 view有检索权限,对表没有权限

由于目标是所有表

而且增加了表,也要没有权限

所以无法用 grant语句事先 设定,

能否从用户层面设定呢
...全文
284 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
中国风 2019-02-13
  • 打赏
  • 举报
回复
在创建用户指定角色db_datareader
USE [master]
GO
CREATE LOGIN [TUser] WITH PASSWORD=N'1', DEFAULT_DATABASE=[master], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
GO
USE [Test]
GO
CREATE USER [TUser] FOR LOGIN [TUser]
GO
USE [Test]
GO
ALTER ROLE [db_datareader] ADD MEMBER [TUser]
GO


或在数据库层设置
use [Test]
GO
GRANT SELECT TO [数据库用户名]
GO
唐诗三百首 2019-02-13
  • 打赏
  • 举报
回复
新建登录名, 创建数据库用户, 并授予db_datareader角色,
然后为所有表执行以下deny语句,

deny select on [表名] to [用户名]

至于"增加了表,也要没有权限 所以无法用grant语句事先设定"的问题,
可以配合DDL触发器, 当新建表时, 在触发器里自动执行以上deny语句.
shoppo0505 2019-02-13
  • 打赏
  • 举报
回复
创建一个schema,用户使用这个schema,这个schema的权限只让看特定的东西,具体是view,table,还是proc,自己随意设定好了

34,587

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧