2008.4月號-171期 程式開發安全自我評量解答  解答名師/王寧疆、楊志強

◎科目:程式開發安全

在上一期的IT基測題目中,我們為大家介紹了SQL Server 2005與使用者執行權限有關的問題。在這一期的題目中,我們還是會來討論企業資訊系統中負責儲存重要資料的資料庫的安全管制最佳做法。 

正確答案:

說明:
SQL Server的物件(包括資料表與檢視表)的擁有者擁有管理物件的權限,而且無法被撤消,如果使用者擁有物件,則使用者也將會無法被刪除。在SQL Server 2000的時代,使用者建立物件時若未指定物件的擁有人,則建立物件的使用者就會變成該物件的擁有人,而且使用者對物件的管理權限也將無法被撤消,這對資料庫物件的安全管制是不好的。從SQL Server 2005開始,資料庫物件隸屬於資料庫的Schema,Schema可以視為是資料庫物件的容器,使用者必須擁有對Schema的存取權限才能夠使用Schema中的資料庫物件,對資料庫中的物件能夠形成更好的安全保護。

正確答案:

說明:
通常我們會在所安裝的SQL CLR物件需要存取外界的資源,例如讀寫檔案,讀寫Windows登錄資訊,與外界的伺服器溝通,以及呼叫Windows平台提供的功能時才附予其UNSAFE權限。

正確答案:

說明:
SAFE的最基本的權限。賦予所安裝的SQL CLR物件最基本的權限,讓SQL CLR物件只能存取SQL SERVER中的資料和執行基本的計算,可以確保資料庫伺服器的系統安全。

正確答案:

說明:
通常我們會在所安裝的SQL CLR物件需要存取外界的資源,例如讀寫檔案,讀寫Windows登錄資訊,以及與外界的伺服器溝通時,才會賦予EXTERNAL_ACCESS權限。請注意擁有這種權限的SQL CLR物件無法呼叫Windows平台提供的功能。

正確答案:

說明:
利用T-SQL提供的CREATE ASSEMBLY敘述將開發好的SQL CLR物件安裝到SQL Server 2005時可以利用with permission_set敘述指定SAFE、EXTERNAL_ACCESS、或UNSAFE權限。

◎科目:資料庫

說明:
使用EXECUTE AS LOGIN 可以變更登入帳戶的身份,使用REVERT就可以還原成原始登入身份。

說明:
A、C是抓取使用者資訊,D是抓取連結的編號。

說明:
其中CONTEXT_INFO可以記錄執行階段的二進位元資訊。

  • 第九題答案

    正確答案:

    說明:
     
    主要是建立DDL觸發程序,搭配DROP_TABLE選項與ROLLBACK陳述式。


Copyright© FLAG INFORMATION CO., LTD. 旗訊科技(股)公司. All rights reserved. 本站圖文著作權所有 未經授權 不得任意轉載使用