Vla*_*lad 8 postgresql security
看起来对于单个用户,我应该创建一个登录角色而不是相应的组角色,因为我无法直接为登录角色分配权限。这是真的吗?这种分离的目的是什么?
此外,据我所知,只能使用login role进行身份验证。那么组角色中密码字段的目的是什么?或者可以作为组角色进行身份验证?那么为什么有人需要登录角色呢?
看起来我也可以在 pg_hba 中设置登录和组角色。
所有这些问题基本上都在文档中得到了解答。再具体一点:
角色是可以拥有数据库对象并拥有数据库权限的实体;角色可以被视为“用户”、“组”或两者,具体取决于它的使用方式。
这意味着除了LOGIN选项之外,这些在内部没有区别。如果您指定LOGIN(或使用CREATE USER):
CREATE ROLE dezso WITH LOGIN PASSWORD 'bla';
Run Code Online (Sandbox Code Playgroud)
dezso将成为登录角色,否则不会。您也可以为非登录角色指定密码 - 如果您稍后决定将其设为登录角色,请使用
CREATE ROLE non_login_role PASSWORD 'bla';
--later
ALTER ROLE non_login_role WITH LOGIN;
Run Code Online (Sandbox Code Playgroud)
您说“只能使用登录角色进行身份验证”是对的。但是请注意,并非总是需要密码 - 如果您使用password或md5身份验证方法以外的任何其他方法。另一方面,这意味着没有设置LOGIN选项的角色无法以任何方式登录。
最后,您可以pg_hba.conf为非登录角色设置规则,但由于它仅用于身份验证,因此这些角色将不起作用(除非您稍后启用登录,如上所述)。
| 归档时间: |
|
| 查看次数: |
4256 次 |
| 最近记录: |