Sql-Server

如何允許某個域使用者在遠端 SQL 實例上創建數據庫?

  • February 10, 2021

我希望允許某個域使用者能夠在遠端 SQL 實例上創建數據庫。

哪些步驟是必要的,是否可以在 C# 應用程序中以程式方式執行這些步驟?

如果不存在,我應該先創建一個登錄名,然後給它一個dbcreator伺服器角色嗎?

相關問題:SQL Server 2014 Express版中登錄觸發器的安全實現?

是的,您首先需要該域使用者的登錄名。如果他們只需要管理數據庫(創建、更改、刪除、恢復它們)的能力,那麼伺服器角色dbcreator就足夠了。

如果您預計多個域使用者需要對此進行訪問,那麼您應該改為為相關的 Active Directory 組創建一個登錄,這樣您就不必不斷地管理設置多個登錄。然後,您將能夠將該 AD 組映射到伺服器角色dbcreator。(如果您希望域中的每個人都有權創建數據庫,您甚至可以使用內置的“域使用者”組。)

至於如何在 C# 中實現這一點,有多種方法,這對於StackOverflow來說可能是一個更好的問題,因為它取決於您訪問和查詢伺服器實例的方式。例如,使用ADO.NET ,您可以簡單地編寫一個 SQL 查詢來檢查目前使用者的登錄是否存在,如果不存在,則創建它並分配角色。或者,您甚至可以創建一個接收應用程序目前使用者的過程,並為您處理該邏輯(這將更容易使用,具體取決於您使用的數據庫訪問框架)。但是,您可能會通過創建適當的 AD 組並將其映射到具有dbowner角色的登錄名來最輕鬆地管理此問題。

引用自:https://dba.stackexchange.com/questions/284630