2 回答
TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超4個(gè)贊
您可以在 PostgreSQL 中動(dòng)態(tài)更改角色。如果您以 身份登錄nobody,并且nobody是角色的成員,您可以通過(guò)以下cleve方式成為角色admins
SET ROLE cleve;
但是在身份驗(yàn)證期間使用它是有問(wèn)題的,因?yàn)闆](méi)有什么可以阻止用戶運(yùn)行該語(yǔ)句
RESET ROLE;
再次成為nobody,然后冒充別人。
通常,您可以通過(guò)兩種方式使用角色系統(tǒng)來(lái)利用數(shù)據(jù)庫(kù)權(quán)限:
對(duì)于應(yīng)用程序的每個(gè)用戶,您都有一個(gè)個(gè)性化的數(shù)據(jù)庫(kù)用戶。
這當(dāng)然只有在用戶集相當(dāng)穩(wěn)定和有限的情況下才可行。
那么個(gè)人用戶完全沒(méi)有權(quán)限,有一定的角色,比如,,
admin等等。登錄角色通過(guò)成為其中一個(gè)或多個(gè)角色的成員來(lái)分配權(quán)限,并且它們繼承其權(quán)限。readeraccountant您沒(méi)有個(gè)性化的數(shù)據(jù)庫(kù)用戶。
然后,每組權(quán)限只有一個(gè)登錄角色,例如
accountant、admin等viewer。應(yīng)用程序必須在建立數(shù)據(jù)庫(kù)連接之前決定它應(yīng)該連接哪個(gè)用戶。如果您需要為此決定進(jìn)行數(shù)據(jù)庫(kù)查詢,您可以作為
nobody具有非常有限權(quán)限的數(shù)據(jù)庫(kù)用戶執(zhí)行這些查詢。例如,它可能調(diào)用驗(yàn)證用戶提供的密碼的函數(shù)。
- 2 回答
- 0 關(guān)注
- 272 瀏覽
添加回答
舉報(bào)
