【问题标题】:Sql Server permissions problemSql Server 权限问题
【发布时间】:2009-06-12 01:54:41
【问题描述】:

我有一个数据库 Mydatabase,其中有一个视图,MyView。

我希望任何属于 Public 角色成员的用户都能够从视图中进行选择。

我已经在 MyView TO [Public] 上完成了 GRANT SELECT,在名为 Test 的 sql 服务器上创建了一个测试登录名,并使其成为 Public 角色的成员,但仍然无法选择视图。

我做错了什么?

【问题讨论】:

    标签: sql-server permissions


    【解决方案1】:
    USE MyDB
    GO
    CREATE USER Test FROM LOGIN Test
    GO
    GRANT CONNECT TO Test
    GO
    

    登录“Test”需要在数据库中设置为“User”。 默认情况下,所有用户都是数据库公共角色的成员。

    See Principals in BOL

    【讨论】:

    • 好的。那么,如果不添加用户,就没有办法让服务器上的任何用户都可以选择数据库中的视图?
    • 嗯。并不真地。每个登录必须明确设置为用户。唯一可靠的方法是让每个登录系统管理员都带着疯狂和风险...
    【解决方案2】:

    如果您想授予所有人或公共连接访问数据库的权限,请进入数据库属性,转到权限页面,将“guest”添加到“用户或角色”列表中,然后选择它,然后在下半部分,找到“连接”行,选择“授予”,将其打开,然后单击“确定”。这使所有服务器登录都可以连接到该数据库。

    【讨论】:

      【解决方案3】:

      登录名和用户本质上是不同的。登录在服务器级别,用户在数据库级别。每个用户都有一个相应的登录名。同时,并不是每个登录都有对应的用户帐号。

      【讨论】:

      • 那么是否有可能(不指定个人用户)授予任何公共角色的连接权限?
      猜你喜欢
      • 2018-08-06
      • 1970-01-01
      • 2013-09-14
      • 1970-01-01
      • 1970-01-01
      • 2013-05-27
      • 1970-01-01
      • 1970-01-01
      • 2017-02-04
      相关资源
      最近更新 更多