T-SQL執行Web Services所需權限

T-SQL執行Web Services所需權限

最近因為工作需要,試了一下在T-SQL中呼叫Web Services

了解了一下,其實是沒問題,但悲慘的是Schema而產生的問題

後經高人指點,以授權解決,為免日後忘記,趕快筆記一下

以T-SQL執行Web Services會用到下列幾個系統Procedure

    EXEC sys.sp_OACreate 'MSXML2.ServerXMLHttp', @obj OUT
    EXEC sys.sp_OAMethod @obj,'Open', NULL, 'GET', @sUrl, false
    EXEC sys.sp_OAMethod @obj,'send'
    EXEC sys.sp_OAGetProperty @obj, 'responseText', @response OUT
 
而Help中又指出,sp_OACreate需有Sysadmin伺服器角色權限
不巧的是公司的系統設計不是用dbo這schema
而只要一加入sysadmin這角色時,系統預設會把account轉至dbo,schema相對應的也變成dbo
怎麼設預設schema都沒有用
 
經測試後,改以單獨授權即可,並不需要加入sysadmin這角色,這樣帳號所使用的帳號預設Schema即可發生作用

GRANT EXECUTE ON sys.sp_OACreate TO 帳號;

GRANT EXECUTE ON sys.sp_OADestroy TO 帳號;

GRANT EXECUTE ON sys.sp_OAGetErrorInfo   TO 帳號;

GRANT EXECUTE ON sys.sp_OAGetProperty   TO 帳號;

GRANT EXECUTE ON sys.sp_OAMethod  TO 帳號;

GRANT EXECUTE ON sys.sp_OASetProperty  TO 帳號;

GRANT EXECUTE ON sys.sp_OAStop  TO 帳號;

GO

 
 

打雜打久了,就變成打雜妹

程式寫久了,就變成老乞丐