レジストリ キーのセキュリティとアクセス権
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) を使用します。 目的のキーに移動した後、編集 メニューに移動し、アクセス許可を選択します。