登錄機碼安全性和訪問許可權
Windows 安全性模型可讓您控制登錄機碼的存取。 如需安全性的詳細資訊,請參閱 Access-Control 模型。
當您呼叫 RegCreateKeyEx 或 RegSetKeySecurity 函式時,您可以為登錄機碼指定 安全性描述元。 如果您指定 NULL,則金鑰會取得預設的安全性描述元。 密鑰的預設安全性描述元中的 ACL 會繼承自其直接父金鑰。
若要取得登錄機碼的安全性描述元,請呼叫 RegGetKeySecurity、GetNamedSecurityInfo或 GetSecurityInfo 函式。
登入機碼的有效存取權限包括 DELETE、READ_CONTROL、WRITE_DAC 和 WRITE_OWNER 標準存取權限。 登錄機碼不支援SYNCHRONIZE標準存取權。
下表列出登錄機碼物件的特定訪問許可權。
價值 | 意義 |
---|---|
KEY_ALL_ACCESS (0xF003F) |
結合STANDARD_RIGHTS_REQUIRED、KEY_QUERY_VALUE、KEY_SET_VALUE、KEY_CREATE_SUB_KEY、KEY_ENUMERATE_SUB_KEYS、KEY_NOTIFY和KEY_CREATE_LINK訪問許可權。 |
KEY_CREATE_LINK (0x0020) |
保留供系統使用。 |
KEY_CREATE_SUB_KEY (0x0004) |
建立登錄機碼子機碼的必要專案。 |
KEY_ENUMERATE_SUB_KEYS (0x0008) |
必須列舉登錄機碼的子機碼。 |
KEY_EXECUTE (0x20019) |
相當於 KEY_READ。 |
KEY_NOTIFY(0x0010) |
需要要求登錄機碼或登錄機碼子機碼的變更通知。 |
KEY_QUERY_VALUE (0x0001) |
查詢登錄機碼值的必要專案。 |
KEY_READ(0x20019) |
結合STANDARD_RIGHTS_READ、KEY_QUERY_VALUE、KEY_ENUMERATE_SUB_KEYS和KEY_NOTIFY值。 |
KEY_SET_VALUE (0x0002) |
建立、刪除或設定登錄值的必要專案。 |
KEY_WOW64_32KEY(0x0200) |
指出64位 Windows 上的應用程式應該在32位登錄檢視上運作。 32 位 Windows 會忽略此旗標。 如需詳細資訊,請參閱 存取替代登錄檢視。 這個旗標必須使用 OR 運算子與這個資料表中的其他旗標結合,才能查詢或存取登錄值。 Windows 2000: 不支援此旗標。 |
KEY_WOW64_64KEY (0x0100) |
指出64位 Windows 上的應用程式應該在64位登錄檢視上運作。 32 位 Windows 會忽略此旗標。 如需詳細資訊,請參閱 存取替代登錄檢視。 這個旗標必須使用 OR 運算子與這個資料表中的其他旗標結合,才能查詢或存取登錄值。 Windows 2000: 不支援此旗標。 |
KEY_WRITE (0x20006) |
結合STANDARD_RIGHTS_WRITE、KEY_SET_VALUE和KEY_CREATE_SUB_KEY訪問許可權。 |
當您呼叫 RegOpenKeyEx 函式時,系統會根據密鑰的安全性描述元檢查所要求的訪問許可權。 如果使用者沒有登錄機碼的正確存取權,則開啟作業會失敗。 如果系統管理員需要存取密鑰,解決方案是啟用SE_TAKE_OWNERSHIP_NAME許可權,並使用WRITE_OWNER存取開啟登錄機碼。 如需詳細資訊,請參閱 啟用和停用權限。
如果您想要讀取或寫入金鑰的系統存取控制清單(SACL),您可以要求登錄機碼ACCESS_SYSTEM_SECURITY訪問許可權。 如需詳細資訊,請參閱 Access-Control 清單 (ACL) 和 SACL 存取權。
若要檢視金鑰的目前訪問許可權,包括預先定義的金鑰,請使用註冊表編輯器 (Regedt32.exe)。 瀏覽至所需的索引鍵之後,請移至 [編輯] 選單,然後選取 [許可權]。