登录角色与用户密码表

时间:2017-08-15 23:09:27

标签: java postgresql login passwords

为每个java应用程序用户或具有用户名和密码的用户表创建postgresql登录角色是否更好?

在第二种情况下,如何使用存储在表中的用户名和密码登录数据库?

2 个答案:

答案 0 :(得分:0)

PostgreSQL角色现在在概念上与您提出的用户密码相同:

https://www.postgresql.org/docs/8.1/static/user-manag.html

  

角色的概念包含“用户”和“群组”的概念。在8.1之前的PostgreSQL版本中,用户和组是不同类型的实体,但现在只有角色。任何角色都可以充当用户,组或两者

     

数据库角色在概念上与操作系统用户完全分开。在实践中,保持通信可能很方便,但这不是必需的。数据库角色在数据库群集安装中是全局的(而不是每个数据库)。要创建角色,请使用CREATE ROLE SQL命令

     

为了引导数据库系统,新初始化的系统始终包含一个预定义角色。此角色始终是“超级用户”,默认情况下(除非在运行initdb时更改),它将与初始化数据库集群的操作系统用户具有相同的名称。通常,此角色将命名为postgres。为了创建更多角色,您首先必须以此初始角色进行连接。

     

与数据库服务器的每个连接都是以某个特定角色的名义建立的,并且此角色确定在该连接上发出的命令的初始访问权限。用于特定数据库连接的角色名称由以特定于应用程序的方式启动连接请求的客户端指示。例如,psql程序使用-U命令行选项指示要连接的角色。许多应用程序默认使用当前操作系统用户的名称(包括createuser和psql)。因此,维护角色和操作系统用户之间的命名对应关系通常很方便。

答案 1 :(得分:0)

只要没有非常复杂的bussines逻辑,

登录角色应该没问题。如果你使用带有用户名和密码的表,你需要附加表来存储授权和程序来管理需要大量工作的权限。

相关问题