在 SQL Server 中,我可以擁有登錄級別帳戶和用戶帳戶(特別是資料庫)。因此,我可以在 SQL Server 中使用此 SQL 陳述句來顯示關系:
SELECT @DBUser = a.[name]
FROM sys.database_principals dp
RIGHT JOIN sys.sql_logins sl ON dp.sid = sl.sid
我想為我的 PostgreSQL 中的特定資料庫創建一個用戶并授予SELECT, CREATE, UPDATE,DELETE操作的權限。
在 SQL Server 中,我可以這樣做:
-- login was created before
CREATE USER MyUser FOR LOGIN MyUser
IF (IS_ROLEMEMBER('db_datareader', MyUser) = 0)
BEGIN
EXEC sp_addrolemember 'db_datareader', MyUser
END
IF (IS_ROLEMEMBER('db_datawriter', MyUser) = 0)
BEGIN
EXEC sp_addrolemember 'db_datawriter',MyUser
END
但是我怎樣才能在 PostgreSQL 中正確地完成類似的任務呢?
uj5u.com熱心網友回復:
PostGreSQL 沒有像 SQL Server 那樣的兩級安全性(在登錄的實體級別和用戶的資料庫級別)......資料庫中只有用戶。
PostGreSQL 中沒有像實體或資料庫級別那樣的內置角色。您必須創建這些角色并將它們應用到您想要的 SQL 用戶
順便說一下, sp_addrolemember 是 MS SQL Server 中已棄用的功能,不得使用...執行此操作的 Transact SQL 命令是:
更改角色 ... 添加成員 ...
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/361570.html
標籤:sql PostgreSQL的
