オンラインドキュメント
https://firebirdsql.org/file/documentation/chunk/en/refdocs/fblangref40/firebird-40-language-reference.html
インストール
https://firebirdsql.org/en/server-packages/ からインストーラファイルをダウンロードして実行する。
使い方
sysdbaのパスワード変更
> gsec -user sysdba -password masterkey -modify sysdba -pw 新しいパスワード | |
システム管理者ユーザの作成
> gsec -user sysdba -password sysdbaのパスワード -add ユーザ名 -pw パスワード -admin yes | |
ユーザの作成
> gsec -user システム管理者ユーザ名 -password システム管理者ユーザのパスワード -add ユーザ名 -pw パスワード | |
ユーザの一覧
> gsec -user システム管理者ユーザ名 -password システム管理者ユーザのパスワード -display | |
権限の設定
システム管理権限を持つ eagle-eight、テーブル、ビュー、シーケンス、トリガー、プロシージャ作成を行える manager1、テーブルの読み書き、シーケンスの使用、プロシージャの実行を行える editor1 の作成を例に説明する。
まずgsecコマンドで各ユーザを作成する。
gsec -user sysdba -password masterkey -add eagle-eight -pw masterkey -admin yes | gsec -user eagle-eight -password masterkey -add manager1 -pw masterkey |
gsec -user eagle-eight -password masterkey -add editor1 -pw masterkey |
|
eagle-eightがデータベースファイルを作成する 000.sql を作成する。コマンドプロンプトで isql -q -i 000.sql -e -m を実行する。
create database 'database1.fdb' user 'eagle-eight' password 'masterkey' default character set utf8; | |
eagle-eightがmanager1にテーブル、ビュー、シーケンス、トリガー、プロシージャ作成の権限を付与する 001.sql を作成する。コマンドプロンプトで isql -q -i 001.sql -e -m を実行する。
set names utf8; | connect 'database1.fdb' user 'eagle-eight' password 'masterkey'; |
|
grant all table to manager1; |
grant all view to manager1; |
grant all sequence to manager1; |
grant all procedure to manager1; |
|
manager1がeditor1にテーブル media_server_mst、movie_mst の読み書き、シーケンス seq_media_server_mst_id、seq_movie_mst_id の使用、プロシージャ do_insert_movie_mst の実行の権限を付与する 003.sql を作成する。コマンドプロンプトで isql -q -i 003.sql -e -m を実行する。
set names utf8; | connect 'database1.fdb' user 'manager1' password 'masterkey'; |
|
grant all on media_server_mst to editor1; |
grant all on movie_mst to editor1; |
grant usage on sequence seq_media_server_mst_id to editor1; |
grant usage on sequence seq_movie_mst_id to editor1; |
grant execute on procedure do_insert_movie_mst to editor1; |
|
システム管理権限を持たないユーザ名を一覧するSQL
select sec$user_name from sec$users where sec$admin = false | |
ユーザ定義のテーブル名を一覧するSQL
select rdb$relation_name from rdb$relations where (rdb$system_flag is null or rdb$system_flag = 0) and rdb$view_blr is null | |
ユーザ定義のビュー名を一覧するSQL
select rdb$relation_name from rdb$relations where (rdb$system_flag is null or rdb$system_flag = 0) and rdb$view_blr is not null | |
ユーザ定義のシーケンス名を一覧するSQL
select rdb$generator_name from rdb$generators where rdb$system_flag = 0 | |
ユーザ定義のプロシージャ名を一覧するSQL
select rdb$procedure_name from rdb$procedures where rdb$system_flag = 0 | |
ホットバックアップ
> gbak -b -user eagle-eight -password masterkey "database1.fdb" "database1_backup_20220417.fbk" | |
リストア
> gbak -r -user eagle-eight -password masterkey "database1_backup_20220417.fbk" "database1.fdb" | |