SQL Server データベースのユーザーおよびスキーマの作成

SQL Server データベースを作成したら、ユーザーとスキーマを作成する必要があります。

始める前に

IBM® Business Process Manager データベース・ユーザーを、以下の 3 つのロールに割り当てます。
注: データベースは、データベース管理者が作成する必要があります。作成後、データベース管理者は、IBM Business Process Manager のデータベース・ユーザーにこれらのロールを割り当てることができます。
  • db_ddladmin
  • db_datawriter
  • db_datareader
これらのロールに設定されている権限については、Microsoft の資料を参照してください。
重要: すべてのデータベース・ユーザーについて、以下の制限に注意してください。
  • ユーザーをシステム管理者 (SYSADMIN) ロールに割り当てることはできません。
  • SqlJDBCXAUser ロールを使用して、ユーザーをマスター・データベースにマップする必要があります。
重要: Microsoft SQL Server では、ユーザーと関連付けられたデフォルトのスキーマ名がユーザー名と同じでなければなりません。例えば、Performance Data Warehouse データベースのユーザー名が dbuser の場合は、dbuser というユーザー名に関連付けられたデフォルトのスキーマ名も dbuser にする必要があります。スーパーユーザー (sa など) やデータベースを作成したユーザー (データベース所有者) を使用するのではなく、通常のデータベース・ユーザーを作成し、そのユーザーに必要な権限を割り当てる必要があります。この理由は、スーパーユーザーのデフォルトのスキーマが dbo であり、これを変更できないためです。

このタスクについて

Windows 認証を使用する場合は、SQL Server ログインにドメイン・アカウントが追加されていることを確認する必要があります。また、SQL Server 管理者としてログインし、以下のステップに従ってユーザーとスキーマを作成する必要があります。

手順

  1. 以下のいずれかのステップを実行します。
    • SQL 認証を使用している場合は、IBM BPM デプロイメント環境構成で指定した各データベースのデータベース・ユーザーに対して、SQL Server ログイン・アカウントを作成します。例えば、データベース・ユーザー名が sqluser であり、sqluser のパスワードが secret1 である場合は、以下のコマンド構文を使用します。
      USE MASTER
      GO
      CREATE LOGIN sqluser WITH PASSWORD='secret1'
      GO
    • Windows 認証を使用している場合は、Windows マシンのログイン情報を使用して、そのマシン用の SQL Server ログイン・アカウントを作成します。例えば、Windows マシンのドメイン名が domain1 で、ユーザー名が user1 の場合は、以下のコマンド構文を使用します。
      USE MASTER
      GO
      CREATE LOGIN [domain1¥user1] FROM WINDOWS
      GO
    注: 作成された SQL Server ログインに SYSADMIN 特権を付与しないでください。ログイン・ユーザーに SYSADMIN 特権を付与すると、sysadmin ユーザーのデフォルト・スキーマが常に dbo になるため、SQL Server によるデータベース接続において、指定されたスキーマ値が無視されることになります。
  2. マスター・データベースを更新して、そのログイン・アカウントに対して XA トランザクションへのアクセス権を付与します。ただし、その前に、トピック『XA トランザクションの構成』の手順を正常に完了したことを確認してください。 例えば、データベース・ユーザー名が sqluser である場合は、以下のコマンド構文を使用してマスター・データベースを更新します。ここで、login_account は、前のステップで使用したのと同じログイン・アカウントです。
    USE MASTER
    GO
    CREATE USER sqluser FOR LOGIN login_account WITH DEFAULT_SCHEMA=sqluser
    GO
    EXEC sp_addrolemember N'SqlJDBCXAUser', N'sqluser';
    GO
  3. 作成するデータベースごとに、SQL Server ログイン用のデフォルト・スキーマを設定する必要があります。 例えば、データベース名が BPMDB であり、データベース・ユーザー名が sqluser である場合は、以下のコマンド構文を使用します。ここで、login_account は、前のステップで使用したのと同じログイン・アカウントです。
    USE BPMDB
    GO
    CREATE USER sqluser FOR LOGIN login_account WITH DEFAULT_SCHEMA=sqluser
    GO
    CREATE SCHEMA sqluser AUTHORIZATION sqluser
    GO
    EXEC sp_addrolemember 'db_ddladmin', 'sqluser';
    EXEC sp_addrolemember 'db_datareader', 'sqluser';
    EXEC sp_addrolemember 'db_datawriter', 'sqluser';
    GO

次のタスク

生成されたスクリプトを使用してデータベース・スキーマを作成する場合は、テーブルの作成権限が自分のユーザー ID に設定されている必要があります。テーブルが作成された後では、テーブル内の情報の選択、挿入、更新、削除を行う権限が必要です。データ・ストアにアクセスするために必要なデータベース特権については、トピックSQL Server データベース特権を参照してください。