我一直在使用下面的SQL來創建一個用戶,登錄和數據庫。作爲db_owner和GRANT ALL有什麼區別?
USE master;
GO
CREATE DATABASE TEST;
GO
USE TEST;
GO
CREATE LOGIN TEST_USER WITH PASSWORD = 'password';
EXEC sp_defaultdb @loginame='TEST_USER', @defdb='TEST'
CREATE USER TEST_USER FOR LOGIN TEST_USER WITH DEFAULT_SCHEMA = DBO;
EXEC sp_addrolemember 'db_owner','TEST_USER'
GO
GRANT ALL TO TEST_USER;
GRANT ALTER ON SCHEMA::dbo TO TEST_USER
GO
當記者問,我發現自己暫時無法解釋讓我的用戶數據庫的所有者(以創建/修改/刪除表等)的區別:
EXEC sp_addrolemember 'db_owner','TEST_USER'
和授予所有給用戶,我認爲給予了基本相同的權限。
GRANT ALL TO TEST_USER;
他們是否一樣?或者,我的母親總是這樣說:你可以帶馬去喝水,但這不會讓他成爲DBA嗎?
羅布
:)可保安全的
謝謝你 - 這是一個非常清晰的解釋Remus。作爲一個所有者給予權利的權利是不可侵犯的權利,在這種權利可以被拒絕。這也解釋了爲什麼我之前讀過,它是一個安全的產權系統的用戶,你希望能夠控制他們可以/不能做的事情。 –
出於某種原因,我無法點擊此帖子上的勾號。我稍後再嘗試 - 這是我的感激之情。 :) –