我正在一臺PC上安裝SQL數據庫和我們的應用程序。在Vista下,這需要由管理員帳戶安裝,但這意味着常規用戶帳戶可以運行我們的程序,但無法訪問它所需的數據庫。SQL爲PC上的所有用戶分配讀/寫訪問權限
我需要的是允許PC上的所有NT登錄訪問數據庫的簡單方法。
我想我已經解決了它:在SSMS中,我可以手動將db_datareader/writer角色分配給BUILTIN \ Users,並且完美地工作。
但是,如果我的安裝程序執行以下,這是行不通的:
USE [OurDatabase]
GO
EXEC sp_addrolemember N'db_datawriter', N'BUILTIN\Users'
GO
EXEC sp_addrolemember N'db_datareader', N'BUILTIN\Users'
GO
得到了用戶指定的角色,但他們仍然無法訪問數據庫。我在SSMSE中看到的唯一差別是,在後一種情況下,他們也獲得了一個新的「BUILTIN \ Users」模式的所有權,我懷疑這可能會讓事情變得糟糕。顯然,SSMS做了一些稍微不同的...
任何人都可以提出一種方法,以編程方式使此工作?
如果我在SSMS中執行它,並要求它從「新用戶」對話框中編寫腳本,它會在我的問題中生成SQL腳本 - 所以我無法在編程方面看到任何差異。在所有情況下,默認模式似乎都是空白的(並且不可編輯)。我在SSMS中看到的唯一區別是,程序添加的用戶擁有一個新的「BUILTIN \ Users」模式,這只是奇蹟般的出現 - 所以我唯一的提示是,也許我需要找到一種方法使它使用更好的默認模式? – 2009-10-20 14:57:44
請參閱我的答案以獲取解決方案的完整說明。但接受亞倫的,因爲它指出我的解決方案。 – 2009-10-20 15:16:26