我正在开发一个基于Web的应用程序,使用PostgreSQL作为后端数据库,Perl处理脚本。
我将登录信息保存在一个单独的文件中,类似于这里的建议where to store global database connection parameters,因此根据脚本需要实现的功能,它可以指向不同的登录凭据。目前是默认的PostgreSQL帐户,这显然需要更改。
我需要了解如何在PostgreSQL中设置用户帐户。
我认为我需要两个帐户,一个允许用户查询数据库,例如web_user,另一个需要提交更改,例如web_admin。
web_admin帐户需要登录网页。
在pgAdmin或命令行中,我该如何创建登录Rolls并授予所需的权限?
编辑请澄清:
我尝试创建了两个帐户,但不确定这是否是正确的方法。
但是它失败了,出现了关于依赖项的错误,列出了mydb中的所有表。
我试图查看web_admin实际拥有哪些权限,但未能成功。
我该如何删除这个账户?
grant web_user语法有什么问题?
我将登录信息保存在一个单独的文件中,类似于这里的建议where to store global database connection parameters,因此根据脚本需要实现的功能,它可以指向不同的登录凭据。目前是默认的PostgreSQL帐户,这显然需要更改。
我需要了解如何在PostgreSQL中设置用户帐户。
我认为我需要两个帐户,一个允许用户查询数据库,例如web_user,另一个需要提交更改,例如web_admin。
web_admin帐户需要登录网页。
在pgAdmin或命令行中,我该如何创建登录Rolls并授予所需的权限?
编辑请澄清:
我尝试创建了两个帐户,但不确定这是否是正确的方法。
CREATE USER web_user PASSWORD 'password1';
GRANT SELECT to web_user on Table1; // Read Only
CREATE USER web_admin PASSWORD 'password2';
GRANT SELECT,INSERT,UPDATE,DELETE to web_admin on Table1; // Read Insert and update / delete rows within a existing table but not able to create, alter or delete a Table or column
编辑2 哎呀
我在pgAdmin窗口中执行了以下操作
CREATE USER web_user PASSWORD 'password1';
GRANT SELECT to web_user in schema PUBLIC; // Read Only
CREATE USER web_admin PASSWORD 'password2';
GRANT SELECT,INSERT,UPDATE,DELETE to web_admin in schema PUBLIC
网页用户账户只允许对数据库进行读取操作,问题是网页管理员账户也有同样的读取权限。
我已经尝试通过删除网页用户并撤销权限来解决问题:
revoke all privileges on database mydb from web_admin;
但是它失败了,出现了关于依赖项的错误,列出了mydb中的所有表。
我试图查看web_admin实际拥有哪些权限,但未能成功。
我该如何删除这个账户?
grant web_user语法有什么问题?