Access 前端連接 SQL Server 後端,需限制使用者僅能瀏覽被授權的資料列。
建立一張授權對照表 authtable,記錄使用者與資料主鍵的對應,再建立 View:
CREATE VIEW v_data AS
SELECT <COLUMN_LIST>
FROM dbo.mytable AS a
INNER JOIN dbo.authtable AS b
ON a.Pkey = b.DataKey
AND b.userid = SUSER_SNAME();
SUSER_SNAME() 回傳目前登入帳號,View 自動過濾出該使用者可見的資料列。
若授權邏輯單一,可直接在 mytable 增加 userid 欄位:
CREATE VIEW v_data AS
SELECT <COLUMN_LIST>
FROM dbo.mytable
WHERE userid = SUSER_SNAME();
此法無需額外 Join,效能更佳。