2008.3月號-170期 程式開發安全自我評量解答 解答名師/王寧疆、楊志強
◎科目:程式開發安全
上一期的題目中,我們為大家介紹協助保護SQL Server 2005的預存程序的內容,以及與SQL Server 2005管理的資料的加密和簽章有關的安全性問題,在這一期的IT基測題目中,我們將為大家介紹SQL
Server 2005與使用者執行權限有關的問題。
正確答案:C
說明:
使用Create Procedure敘述建立預存程序時可以利用Execute As Owner語法指定要以預存程序的擁有者的權限做為預存程序的執行權限,如果預存程序沒有擁有者,則會以預存程序隸屬的Schema的擁有者當做預存程序的擁有者。
需注意預存程序的擁有者只能對應到一個帳號,不可以對應到角色或群組。
正確答案:B
說明: 使用Create Procedure敘述建立預存程序時可以利用Execute As Caller語法指定要以預存程序的呼叫者的權限做為預存程序的執行權限。呼叫該執行緒的呼叫者不但必須擁有執行預存程序的權限,也必須擁有預存程序中欲存取的所有資料庫物件的權限。
正確答案:A
說明:
使用Create Procedure敘述建立預存程序時可以利用Execute As Self語法指定要以預存程序的建立者或修改者的權限當做預存程序的執行權限。
正確答案:D
說明:
使用Create Procedure敘述建立預存程序時可以利用Execute As使用者帳號'語法指定要以指定的使用者帳號當做預存程式的執行權限,所指定的使用者帳號必須對預存程序欲存取的所有資料庫物件具有使用權限,預存程序才得以執行成功。使用Execute
As語法指定的使用者帳號必須存在於目前的資料庫中,而且必須對應到單一個帳號,不可以是角色、群組、憑証、金鑰、或是Windows作業系統內建的帳號,包括NT AUTHORITY\LocalService,NT
AUTHORITY\NetworkService,或是NT AUTHORITY\LocalSystem。
正確答案:C
說明:
你可以利用CREATE CREDENTIAL敘述建立存取SQL Server外部資源的身分。存取SQL Server外部資源的身分是一組帳號和密碼的組合,你可以在CREATE
CREDENTIAL敘述中利用IDENTITY語法指定存取外部資源的帳號,利用SECRET語法指定帳號的密碼,其中所指定的密碼會經過SQL Server 2005的Service
Master Key進行加密處理。
◎科目:資料庫
說明:
使用範例如下:
CREATE TRIGGER triDROPtab
ON DATABASE
FOR DROP_TABLE
AS
SELECT EVENTDATA()
GO |
說明:
使用範例如下:
ALTER DATABASE tempdb
MODIFY FILE (NAME = tempdev, FILENAME = 'D:\tempdb.mdf');
GO |
說明:
以下範例就是將Orders資料表的2004/1/1資料,轉出到OrdersArchive資料表,使用方式如下:
ALTER TABLE dbo.Orders
SWITCH PARTITION $partition.pfLeft_OrderDate('2004-01-01')
TO dbo.OrdersArchive
GO |
說明:
使用範例如下:
|