FirebirdSQL 新增資料庫使用者與資料表權限



Firebird 資料庫有個最高權限的 SYSDBA 帳號,正常上線使用下最好將它的密碼進行變更,然後再新增一個使用者並賦予資料表的權限,這樣比較安全。

這些調整指令都透過使用 isql 介面來完成

※注意,使用 isql 調整資料庫相關設定前,先把 Firebird 服務/引擎 先關閉,以免發生占用衝突。

假設我們資料庫是在 D:\NEWDB\test.fdb

首先,變更 SYSDBA 的密碼
C:\FB3>isql -user SYSDBA D:\NEWDb\test.fdb↵
Database: D:\NEWDb\test.fdb, User: SYSDBA

SQL> ALTER USER SYSDBA password 'mustKey';↵
SQL> COMMIT;↵
SQL>

這樣就把密碼變更為 mustKey 了 (注意,Firebird 對帳號沒有大小寫分別,但是密碼有分別)


一、新增使用者

SQL> CREATE USER user01 password 'userPass01';↵

或是創建時同時賦予角色權限(例如管理者權限)

SQL> CREATE USER user01 password 'userPass01' GRANT ADMIN ROLE;↵

※參考 SQL user management commands
※參考 ROLE
※參考 The RDB$ADMIN role

二、對使用者賦予資料表權限
假設我有一個資料表 EMPL

SQL> GRANT SELECT , INSERT , UPDATE ON TABLE EMPL TO USER user01;↵

這代表我只賦予 user01 對 EMPL 只能操作 SELECT、INSERT、UPDATE 三種權限。

基本上,資料表操作權限只有 SELECT、INSERT、UPDATE、DELETE、REFERENCES 這四種,要 CREATE/DROP/ALTER 資料表只能由 SYSDBA 來做。

REFERENCES 這權限是用來讀取資料表的 關聯 資訊(foreign key)的。

如果我要給與全部的權限也可以用 ALL 取代那串長長的命令

SQL> GRANT ALL ON TABLE EMPL TO USER user01;↵

當這些都完成以後,Client APP 就只要使用新增的 user 權限來存取資料表就好了。

※參考 SQL Privileges


留言

這個網誌中的熱門文章

【研究】列印的條碼為什麼很難刷(掃描)

統一發票列印小程式

C# 使用 Process.Start 執行外部程式