Forguncyマニュアル
構造変更の許可
Forguncyの使い方 > 外部データベース > 構造変更の許可

ここでは、外部データベース(SQLServer、Oracle Database、およびMySQL)を利用しており、以下の機能を利用したい場合に必要な設定方法について記載します。

また、設定を行った場合に外部データベースに実行される動作についても記載します。

Forguncyから外部データベースのテーブル操作を許可する

アクセス許可やワークフローを実現するには、これらを管理するためのForguncy専用のフィールドやテーブルがデータベース側に必要になります。内部データベースの場合、ログインしたユーザーが属するロールの権限に応じて自動的に作成しますが、SQLServer、Oracle Database、およびMySQLの場合は、次の設定を行いその作成を許可させる必要があります。

  1. 外部DBに接続したリンクテーブルを作成します。

    リンクテーブルの作成 を参照して、リンクテーブルを作成します。このとき、データベースにログインするユーザーは、たとえばSQL Serverの場合であればデータベースロールがdb_ddladmin以上の権限を持っている必要があります。db_ddladminとは、データベース内のオブジェクト自身の追加/変更/削除(CREATE/ALTER/DROP)を行う権限を持つロールです。外部DB側でログインするユーザーにdb_ddladmin以上の権限を付与し、そのユーザーでログインするようにしてください。

  2. 構造変更の許可をチェックします。

    画面左側のナビゲーションウィンドウから接続したテーブルをダブルクリックして開き、画面右側の「テーブル設定」にて「構造変更の許可」の「データベースや構造変更をForguncyに許可する」にチェックをします。
    こうすることで、Forguncyからリンクテーブルに対し、アクセス許可などを管理するためのForguncy専用のフィールドを追加するといったことが行えるようになります。

    注意:データベースに接続するユーザーは、例えばSQL Serverの場合、db_ddladmin以上のデータベース更新の権限を持っている必要があります。

テーブル名の変更

「構造変更の許可」の[データーベースやテーブルの構造変更をForguncyに許可する]がチェックされていないテーブルの場合、テーブル名の変更はForguncy Builder上の名前のみが変更され、外部データベース上のテーブル名が変更されることはありません。しかし、[データーベースやテーブルの構造変更をForguncyに許可する]がチェックされているテーブルの場合、次のメッセージダイアログが表示され、[はい]をクリックすることで外部データベース上のテーブル名も変更されます。[いいえ]をクリックしした場合、Forguncy Builder上の名前のみが変更されます。

 

自動生成される外部データベースの項目

「データベースや構造変更をForguncyに許可する」にチェックすると、Forguncyは接続した外部データベースに対して、以下のことを行います。

テーブル名

説明

フォーム認証:FGC_USD_<コンピューター名>

Windows認証:FGC_USD_W_<コンピューター名>

認証プロバイダー:FGC_USD_S_<コンピューター名>

Forguncy開発環境の時に作成します。

フォーム認証:FGC_US_<コンピューター名>

Windows認証:FGC_US_W_<コンピューター名>

認証プロバイダー:FGC_US_S_<コンピューター名>

Forguncy Server環境の時に作成します。ワークフローとアクセス許可を行うユーザー情報を記録します。このテーブルは削除しないでください。

Forguncyは自動的に不要なテーブルを削除し、データ更新時にこのテーブルを再作成します。そのため、このテーブルを直接参照するようなビューやストアドプロシージャ-を作成することはサポートされないことに注意してください。

上記のテーブル名に使用されるコンピューター名に関する注意点:

フィールド名

役割

対象テーブルと
フィールドの生成タイミング

Forguncyの機能

FGC_Creator

作成者

接続した任意のテーブルに対し、ユーザーが最初にレコードの挿入や更新を行った時に生成

ワークフロー、アクセス許可、データ連結

FGC_CreateDate

作成日時

FGC_LastModifier

最終更新者

FGC_LastModifyDate

最終更新日

FGC_UpdateHelp

Forguncy内部で同時実行の競合を検査するために使用します

接続した任意のテーブルやForguncyで生成したテーブルに対して、最初にレコードの挿入や更新を行った時に生成

FGC_Rowversion

Forguncy内部で同時実行の競合を検査するために使用します

SQL Server、およびMySQLの場合、接続したテーブルに対して、最初にレコードの挿入や更新を行った時に生成されます。SQL Serverではrowversion型のフィールドが、MySQLではTIMESTAMP型がすでにそのテーブルに存在する場合には、作成しません。

なお、Forguncyが自動作成するフィールドの定義は以下の通りです。

SQL Server

FGC_Rowversion timestamp not null

MySQL

FGC_Rowversion TIMESTAMP(6) DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)

Oracle Databaseでは自動では生成されません。手動にて同時実行制御のための列を作成し、[行のバージョン管理フィールド]として設定する必要があります。詳細については、外部データベースの同時実行制御を参照してください。

FGC_UserName

ユーザー名

FGC_UserInfoTableテーブル、あるいはFGC_DesignerUserInfoTableテーブルが生成された時に作成。
自動的にWebサイトのユーザーサービスから情報を取得しフィールド値として設定されます。

ワークフロー、アクセス許可

FGC_FullName

氏名

FGC_Email

メールアドレス

FGC_Role

ロール

FGC_OrganizationBelongsTo

FGC_RootOrganizationCanAccess

FGC_OrganizationQueryCache

FGC_OrganizationSuperior

上位組織メンバー

外部データベースのテーブルでワークフロー機能を利用する

ワークフロー機能については関連トピックをご確認ください。

関連トピック