【问题标题】:Create user to see only one view in SQL Server 2012创建用户以在 SQL Server 2012 中仅查看一个视图
【发布时间】:2026-02-17 12:10:01
【问题描述】:

我想让用户有权查看一个视图。

我创建的用户看不到任何其他表或视图,但可以选择任何内容

问题

为什么我可以锁定用户进行任何选择插入/更新?

【问题讨论】:

    标签: sql-server view permissions


    【解决方案1】:

    LOGIN 和 USER 应该只有一个角色:public。

    接下来,为该用户授予选择权限:

    GRANT SELECT ON **schema.VIEW_NAME** TO [**USER_NAME**]
    

    完整脚本:

    CREATE LOGIN [TEST] WITH PASSWORD=N'PASS', DEFAULT_DATABASE=[DATABASE_NAME]
    GO
    USE [test]
    GO
    CREATE USER [TEST] FOR LOGIN [TEST]
    GO
    
    GRANT SELECT ON schema.VIEW_NAME TO [TEST]
    GO
    

    使用 login TEST 登录 DB 并检查是否可以选择。

    【讨论】:

    • 好的,但是在我没有看到其他表和视图之后.. 但是我可以写任何查询任何表中的任何选择
    • 这不起作用我找到解决方案我必须关闭所有权限 Deny Select on table to login and do this for all tables , views , sp s, and with all commands (select, alter, update , 删除)
    最近更新 更多