1
我想知道sql server存儲過程的默認權限是什麼。 例如,我創建了數據庫中的用戶,但沒有任何作用或授予的除了像執行權限沒有權限:創建一個存儲過程,使剛剛從選擇上我sql server默認過程權限
GRANT EXECUTE ON SCHEMA :: [dbo] TO [newUser]
後(爲SA登錄)表所示:
CREATE PROCEDURE dbo.selectX AS
BEGIN
SELECT ID, NAME FROM MyTable
END
和我的用戶[NEWUSER]可以執行並看到類似的SELECT語句的結果:
EXEC dbo.selectX
直到現在,我可以假定存儲過程具有我的用戶沒有的默認權限。 我試過其他dmls,如UPDATE,INSERT,DELETE和用戶管理成功執行過程。 但是!當我創建了DDL作爲創建表proceure ..如:
CREATE PROCEDURE dbo.crtNT AS
BEGIN
CREATE TABLE del(id int) --for test
END
當NEWUSER執行此過程發生錯誤一樣:
CREATE TABLE permission denied in database 'MyDb'
這裏是我的問題:默認情況下,存儲過程是否具有使用DML(選擇,插入,更新vs.)的權限,但是不能使用DDL(創建,刪除表與vs)?因爲我在聯機叢書或其他地方沒有看到關於這種情況的任何解釋。 任何意見將受到歡迎。
由於創建表需要架構級別權限,因此您的解釋和提供的鏈接非常令人滿意。 –