ユーザーが複数の Active Directory グループのメンバーになっており、それらのグループの 1 つがオブジェクト(たとえば、ESX ホスト)で読み取り専用ロールで構成されている場合は、上位レベルから伝達された管理者権限が存在するとしても、そのオブジェクトには読み取り専用権限が適用されます。
最上位レベルで読み取り専用権限が適用されていると、管理者には、この権限を削除するアクセス権限がない場合があります。
注:この解決方法では SQL データベースを操作するため、ユーザーがデータベースの概念に精通し、先に進む前に適宜バックアップを作成することをお勧めします。これらの手順を実行することに関して不明な点がある場合には、VMware サポートにサポート リクエストを提出し、このナレッジ ベースの記事 ID を問題の記述に含めてください。サポート リクエストの提出方法の詳細については、「
サポート リクエストの提出方法」を参照してください。
vCenter Server データベースを復元する、またはデータベースの VPX_Access テーブルを変更して読み取り専用権限を削除するには:
- vCenter Server で スタート > ファイル名を指定して実行 をクリックします。
-
「services.msc」と入力し、OK をクリックします。
-
VMware VirtualCenter Server サービスを右クリックし、停止 を選択します。
-
SQL Server Management Studio を開きます。
- [サーバ名] フィールドに、vCenter Server データベースをホストしている SQL Server の名前を入力します。
- vCenter Server データベースに対し、データベース所有者 (dbo) 権限を持つアカウントで認証します。
- データベース をクリックします。
- vCenter Server データベース をクリックします。
注:使用しているデータベースが不明な場合は、ODBC システム DSN 構成を参照してください。
- テーブル をクリックします。
- dbo.VPX_Access テーブルを右クリックし、テーブルを開く を選択します。
注:SQL 2008 では、テーブルを開く が 上位 200 行の編集 に置き換えられています。
注:カスタム スキーマを使用している場合、dbo.VPX_Access の名前は変更されている可能性があります。
- 「ユーザー」のすべてのインスタンスの権限を、-2 (読み取り専用)から -1 (管理者) に変更します。これにより、「ユーザー」のメンバーに vCenter Server での管理者権限が付与されます。
-
サービス コントロール マネージャから、VirtualCenter Server サービスを再起動します。
-
VMware vSphere Client を使用して vCenter Server にログインし、「ユーザー」が関係する権限を削除します。
注:読み取り専用権限を割り当てるには、新しいセキュリティ グループを作成し、関連するユーザーをそのグループに追加します。その後この新しいグループを使用して、vCenter Server での権限を割り当てることができます。
注: vpx_access テーブルの [FLAG] 列の値により、次のように伝達が定義されます。
0 - 子オブジェクトへの伝達 を選択せずに、エンティティの USER にロールを割り当てた場合
1 - 子オブジェクトへの伝達 を選択して、エンティティの USER にロールを割り当てた場合
2 - 子オブジェクトへの伝達 を選択せずに、エンティティの GROUP にロールを割り当てた場合
3 - 子オブジェクトへの伝達 を選択して、エンティティの GROUP にロールを割り当てた場合
Oracle の場合は、次の手順を実行できます。
-
SQL Plus を使用し、vCenter データベース ユーザーとして Oracle データベースにログインします。
注:ベストプラクティスとして、変更を加える前に vCenter サービスをシャットダウンし、vCenter Server データベースを最新の状態に保ち、フルバックアップを作成することをお勧めします。
-
SQL Plus で次のコマンドを実行します。
select * from vpx_access
-
Role_ID の数字を確認します(-1 は管理者ロール、-2 は読み取り専用)。
-
権限を変更するには、次のコマンドを実行します。
update vpx_access (ID, PRINCIPAL, ROLE_ID, ENTITY_ID, FLAG) values ('32', 'Administrator', '-1', '1', '1') where Principal = Administrator;
-
ユーザーを追加するには、次のコマンドを実行します。
insert into vpx_access (ID, PRINCIPAL, ROLE_ID, ENTITY_ID, FLAG) values ('100', 'ACME\JSMITH', '-1', '1', '1');
-
変更をコミットするには、次のコマンドを実行します。
commit;
-
VirtualCenter Server サービスを再起動します。
-
もう一度 vCenter Server にログインします。