none
請問如何下 拒絕登入 VIEW ANY DATABASE 權限的指令 RRS feed

  • 問題

  • 文件上有寫

    若要限制資料庫中繼資料的可見性,請拒絕登入的 VIEW ANY DATABASE 權限。

     

    請問指令如何下

    謝謝

    2006年12月27日 上午 06:48

解答

  • Hi: 您好,

    VIEW ANY DATABASE 權限是新的伺服器層級權限。授與此權限的登入可以看到描述所有資料庫的中繼資料,不論該登入是否擁有特定資料庫或是否可實際使用特定資料庫。

    VIEW ANY DATABASE 權限會管制在 sys.databases 與 sys.sysdatabases 檢視以及 sp_helpdb 系統預存程序內中繼資料的公開。

    依預設,會授與 public 角色 VIEW ANY DATABASE 權限。因此每個連接到 SQL Server 2005 執行個體的使用者預設都會看到執行個體中的所有資料庫。

    描述 master 和 tempdb 資料庫的中繼資料永遠對 public 為可見。

    系統管理員 (sysadmin) 固定伺服器角色的成員,可以永遠看到所有的資料庫中繼資料。

    資料庫擁有者對於他們所擁有的資料庫可以永遠看到 sys.databases 中的資料列。

    授與登入 CREATE DATABASE 和 ALTER ANY DATABASE 權限,將授予資料庫中繼資料的存取權。

    若要限制資料庫中繼資料的可見性,請拒絕登入的 VIEW ANY DATABASE 權限。在拒絕此權限後,登入就只能看到 master、tempdb 以及登入所擁有之資料庫的中繼資料。

    範例碼如下:

    use [master]
    GO
    DENY VIEW ANY DATABASE TO 帳號名稱
    GO

    希望對您有幫助 ...

    Best Regards
    Derrick Chen 德瑞克

    2007年1月4日 下午 04:07

所有回覆

  • 你可以使用 DENY 指令。

    DENY permission [ ,...n ] 
        TO <grantee_principal> [ ,...n ]
        [ CASCADE ]
        [ AS <grantor_principal> ] 
    
    <grantee_principal> ::= SQL_Server_login 
        | SQL_Server_login_mapped_to_Windows_login
        | SQL_Server_login_mapped_to_Windows_group
        | SQL_Server_login_mapped_to_certificate
        | SQL_Server_login_mapped_to_asymmetric_key
    
    <grantor_principal> ::= SQL_Server_login 
        | SQL_Server_login_mapped_to_Windows_login
        | SQL_Server_login_mapped_to_Windows_group
        | SQL_Server_login_mapped_to_certificate
        | SQL_Server_login_mapped_to_asymmetric_key
    2006年12月27日 上午 07:40
    版主
  • 謝謝

    若要 DENY 的 permission 是 VIEW ANY DATABASE

    資料庫是 TEST (可針對單一資料庫嗎?)

    使用者 sa

    角色為 public

    請問指令要如何打

    謝謝

     

    2006年12月27日 上午 08:08
  • Hi: 您好,

    VIEW ANY DATABASE 權限是新的伺服器層級權限。授與此權限的登入可以看到描述所有資料庫的中繼資料,不論該登入是否擁有特定資料庫或是否可實際使用特定資料庫。

    VIEW ANY DATABASE 權限會管制在 sys.databases 與 sys.sysdatabases 檢視以及 sp_helpdb 系統預存程序內中繼資料的公開。

    依預設,會授與 public 角色 VIEW ANY DATABASE 權限。因此每個連接到 SQL Server 2005 執行個體的使用者預設都會看到執行個體中的所有資料庫。

    描述 master 和 tempdb 資料庫的中繼資料永遠對 public 為可見。

    系統管理員 (sysadmin) 固定伺服器角色的成員,可以永遠看到所有的資料庫中繼資料。

    資料庫擁有者對於他們所擁有的資料庫可以永遠看到 sys.databases 中的資料列。

    授與登入 CREATE DATABASE 和 ALTER ANY DATABASE 權限,將授予資料庫中繼資料的存取權。

    若要限制資料庫中繼資料的可見性,請拒絕登入的 VIEW ANY DATABASE 權限。在拒絕此權限後,登入就只能看到 master、tempdb 以及登入所擁有之資料庫的中繼資料。

    範例碼如下:

    use [master]
    GO
    DENY VIEW ANY DATABASE TO 帳號名稱
    GO

    希望對您有幫助 ...

    Best Regards
    Derrick Chen 德瑞克

    2007年1月4日 下午 04:07