gpt4 book ai didi

python - 如何在python中将用户名和密码传递给cassandra

转载 作者:太空狗 更新时间:2023-10-29 18:18:42 27 4
gpt4 key购买 nike

我正在学习并设置我的 cassandra 集群并尝试使用 python 作为客户端与其交互。在 yaml 中,我将身份验证器设置为 PasswordAuthenticator。

所以现在我打算将我的用户名和密码提供给连接功能,但找不到放置它们的地方。

cluster = Cluster(hosts)
session = cluster.connect(keyspace)

基本上,您只需提供主机和 key 空间。文档有点暗示与匿名的联系? http://datastax.github.io/python-driver/getting_started.html#connecting-to-cassandra

如果我只是用这个例子,我会得到如下错误

raise NoHostAvailable("Unable to connect to any servers", errors)
cassandra.cluster.NoHostAvailable: ('Unable to connect to any servers', {'hou722067': AuthenticationFailed('Remote end requires authentication.',)})

是否通过某些配置文件提供了身份验证信息?这似乎是一个非常基本的功能,我无法想象它没有包含在 python 客户端驱动程序中。我一定是错过了什么。

简而言之,我的问题是:如何使用 python 登录 cassandra?

提前感谢任何可能的提示!

============================================= ==明白了。

我应该在 auth_provider 字段中提供用户名和密码,该字段是一个返回包含“用户名”和“密码”键以及适当字符串值的字典的函数。

有点像

def getCredential(self, host):
credential = {'username':'myUser', 'password':'myPassword'}
return credential

cluster = Cluster(nodes, auth_provider=getCredential)

最佳答案

按照操作建议使用:

from cassandra.cluster import Cluster

def getCredential(self):
return {'username': 'foo', 'password': 'bar'}

node_ips = ['0.0.0.0', '0.0.0.1']

cluster = Cluster(node_ips, protocol_version=1, auth_provider=getCredential)
session = cluster.connect()

如果您使用的是协议(protocol)版本 2,那么您必须使用 AuthProvider 对象进行身份验证。例如:

from cassandra.auth import PlainTextAuthProvider
from cassandra.cluster import Cluster

ap = PlainTextAuthProvider(username=foo, password=bar)
c = Cluster(protocol_version=2, auth_provider=ap)
s = c.connect()

有人可以解释使用这些方法中的任何一种对远程集群进行身份验证的最佳实践吗?

关于python - 如何在python中将用户名和密码传递给cassandra,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21787950/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com