Sql-Server
SQL Server 上的權限
我來自 Oracle 數據庫,現在我正在嘗試學習 SQL Server,我不明白為什麼我可以查看其他數據庫,例如主數據庫,而普通使用者在該數據庫中沒有權限?
你的意思是你可以看到數據庫存在,即使你無權訪問它?是的,就是這樣,很簡單。
從技術角度來看,原因是(可能)您是否有權訪問數據庫都儲存在數據庫中。因此,SQL server 必須在 SSMS/Object Explorer 等工具中打開所有數據庫,以確定是否顯示每個數據庫。即,資訊不儲存在master中。
從實際的角度來看,原因是因為 MS 是這樣做的。我不想在這裡成為一個聰明的亞歷克,但有些事情就是這樣……
您可以通過兩種方式處理此問題:
使用包含的數據庫。如果為數據庫打開部分包含,則無需登錄即可直接登錄數據庫。會話將被沙箱化到該數據庫。
拒絕相關登錄的查看任何數據庫伺服器權限。他們現在只能看到他們擁有的數據庫。即,這僅適用於擁有他們將使用的數據庫的人。非所有者仍然可以使用它有權訪問的數據庫,但它不會出現在 sys.databases 中。