无论如何支持presto的会话级连接器配置
anyway to support session level connector configuration for presto
基于Connectors configuration,所有worker在目录文件夹下共享相同的连接器配置,这意味着它将为任何presto集群用户使用相同的连接器配置。例如,来自 prestosql user1 和 user2 的查询将使用相同的 jdbc 查询配置。而传统的RDBMS ACL是基于username in JDBC配置来支持隔离的。例如,user1 将使用 jdbc:mysql://user1@host:3306
而 user2 将使用 jdbc:mysql://user2@host:3306
.
问题:在同一个 presto 集群中是否有任何支持会话级连接器配置的指示或说明?例如,当 user1 运行 查询时,它会在使用 mysql 连接器时选择 jdbc:mysql://user1@host:3306
,而当 user2 运行 连接到的查询时它可以切换到 jdbc:mysql://user2@host:3306
mysql.
我愿意接受任何设计输入,例如使用像 consul 或 etcd 这样的集中式配置管理工具。
这是通过使用额外的凭据直接支持的。
参见 https://github.com/trinodb/trino/blob/8c1a4a10abaad91a2f4656653a3f5eb0e44aa6c1/presto-base-jdbc/src/main/java/io/prestosql/plugin/jdbc/credential/ExtraCredentialProvider.java#L26
有关详细信息,请参阅文档任务:
您可以为 MySQL 连接器目录属性文件进行配置:
user-credential-name=mysql_user
password-credential-name=mysql_password
这允许用户提供 MySQL 用户名和密码作为 额外的凭据 当 运行 时直接传递给后端 MySQL 服务器=] Presto 查询:
presto --extra-credential mysql_user=user1 --extra-credential mysql_password=secret
凭据名称 mysql_user
和 mysql_password
是任意的,让您可以灵活地配置它。例如,假设您有两个 MySQL 目录指向两个不同的 MySQL 服务器。如果两个服务器共享相同的用户,那么您将使用相同的凭据名称配置两个目录,从而允许对两者使用相同的凭据。如果它们不同,那么您将以不同的方式命名它们,例如 mysql1_user
和 mysql2_user
,允许用户为每个目录提供不同的凭据。
如果您使用的是 Starburst Presto,那么还有一个用户模拟选项。参见 https://docs.starburstdata.com/latest/security/impersonation.html。其中,目前支持 PostgreSql,但还不支持 MySql 连接器。
基于Connectors configuration,所有worker在目录文件夹下共享相同的连接器配置,这意味着它将为任何presto集群用户使用相同的连接器配置。例如,来自 prestosql user1 和 user2 的查询将使用相同的 jdbc 查询配置。而传统的RDBMS ACL是基于username in JDBC配置来支持隔离的。例如,user1 将使用 jdbc:mysql://user1@host:3306
而 user2 将使用 jdbc:mysql://user2@host:3306
.
问题:在同一个 presto 集群中是否有任何支持会话级连接器配置的指示或说明?例如,当 user1 运行 查询时,它会在使用 mysql 连接器时选择 jdbc:mysql://user1@host:3306
,而当 user2 运行 连接到的查询时它可以切换到 jdbc:mysql://user2@host:3306
mysql.
我愿意接受任何设计输入,例如使用像 consul 或 etcd 这样的集中式配置管理工具。
这是通过使用额外的凭据直接支持的。 参见 https://github.com/trinodb/trino/blob/8c1a4a10abaad91a2f4656653a3f5eb0e44aa6c1/presto-base-jdbc/src/main/java/io/prestosql/plugin/jdbc/credential/ExtraCredentialProvider.java#L26
有关详细信息,请参阅文档任务:
您可以为 MySQL 连接器目录属性文件进行配置:
user-credential-name=mysql_user
password-credential-name=mysql_password
这允许用户提供 MySQL 用户名和密码作为 额外的凭据 当 运行 时直接传递给后端 MySQL 服务器=] Presto 查询:
presto --extra-credential mysql_user=user1 --extra-credential mysql_password=secret
凭据名称 mysql_user
和 mysql_password
是任意的,让您可以灵活地配置它。例如,假设您有两个 MySQL 目录指向两个不同的 MySQL 服务器。如果两个服务器共享相同的用户,那么您将使用相同的凭据名称配置两个目录,从而允许对两者使用相同的凭据。如果它们不同,那么您将以不同的方式命名它们,例如 mysql1_user
和 mysql2_user
,允许用户为每个目录提供不同的凭据。
如果您使用的是 Starburst Presto,那么还有一个用户模拟选项。参见 https://docs.starburstdata.com/latest/security/impersonation.html。其中,目前支持 PostgreSql,但还不支持 MySql 连接器。