我使用的是PostgreSQL 9.1。我在db上創建了四個角色/用戶,每個人在不同的表上擁有不同的權限。作爲新用戶重新連接到postgreSQL,登錄後
當有人試圖登錄,PHP連接到數據庫作爲「客人」(第一個角色/用戶)像
$conn = pg_connect("host=localhost port=5432 dbname=mydb user=guest password=guest")or die('no connection, sorry');
從「用戶」表遊客只能「選擇」,以檢查登錄。在成功登錄後,我想根據名爲「level」的int在「users」表上重新將用戶連接到數據庫。如果「級別」,在表中找到的是1我想用戶重新連接爲「低」角色/用戶,像
$conn = pg_connect("host=localhost port=5432 dbname=mydb user=low password=low")or die('no connection, sorry');
「低」的角色/用戶只能插入和一些表的更新。
然後爲其他角色/用戶。如果users表中的「level」爲2,則連接爲「mid」(可插入/更新/刪除),如果連接爲「high」(超級用戶)。
簡而言之,它就像:連接爲「guest」,以便您可以「選擇」並驗證登錄>登錄succesfull>根據「級別」,重新連接爲「低」,因此您可以插入/更新OR 「mid」,所以你可以插入/更新/刪除OR,如「高」,超級用戶。
我該怎麼做?要在成功登錄後重新連接,以便用戶獲得所需的權限,以便他可以執行正確的操作?
謝謝
成功登錄後,從當前數據庫斷開並重新連接到相應的權限級別。 – shapeshifter 2013-03-07 00:07:42
將db資源傳遞給pg_close,http://php.net/manual/en/function.pg-close.php – shapeshifter 2013-03-07 00:08:20