2011年9月23日 星期五

訊息2760,層級16,狀態1,程序OOXX,行3 指定的結構描述名稱"dbo" 不存在,或您沒有使用它的權限。

--建立測試的帳號與權限
USE [master]
GO
--1.建立LOGIN
CREATE LOGIN ryo2011 WITH PASSWORD=N'ryo@2011', DEFAULT_DATABASE=DemoPermission
, CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
GO
USE DemoPermission
GO
--2.建立USER
CREATE USER ryo2011 FOR LOGIN ryo2011
--3.設定USER預設的SCHEMAdbo
ALTER USER ryo2011 WITH DEFAULT_SCHEMA=[dbo]
--4.授權讀的權限,可以讀取所有的Table
EXEC sp_addrolemember N'db_datareader', N'ryo2011'
--5.授權建立VIEWPROCFUNCTION與執行PROC的權限
GRANT CREATE VIEW TO ryo2011;
GRANT CREATE PROC TO ryo2011;
GRANT CREATE FUNCTION TO ryo2011;
GRANT EXEC TO ryo2011;


--使用測試帳號登入並執行CREATE VIEW的指令後會有錯誤訊息如下;
訊息2760,層級16,狀態1,程序testview,行3
指定的結構描述名稱"dbo" 不存在,或您沒有使用它的權限。

--切回到SA,給予ryo2011擁有GRANT ALTER ON SCHEMA的權限
GRANT ALTER ON SCHEMA::dbo TO ryo2011;
--再次使用測試帳號登入並執行CREATE VIEW的指令後執行指令成功

--使用測試帳號登入並測試SELECT的指令

--搞定收工

沒有留言:

張貼留言