次の方法で共有


レジストリ キーのセキュリティとアクセス権

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