繁体   English   中英

使用SASL的Python Cassandra 2身份验证

[英]Python Cassandra 2 authentication with SASL

我正在尝试从我的python代码连接运行协议2的Cassandra 2数据库:

def auth_provider(ip):
    return dict(username=cassandra_username,
                password=cassandra_password)

def cassandradb():
    cluster =  Cluster(cassandra_cluster,
                       load_balancing_policy=RoundRobinPolicy(),
                       port=cassandra_port,
                       auth_provider=auth_provider)
    session = cluster.connect(cassandra_keyspace)
    ...

该代码引发异常:

cassandra.cluster.NoHostAvailable: 
    ('Unable to connect to any servers', 
       {'127.0.0.1': UnsupportedOperation('Credentials-based authentication 
        is not supported with protocol version 2 or higher.  Use the SASL
        authentication mechanism instead.',)})

我从未与SASL合作过。 我应该如何更改auth_provider或其他代码位置?

https://datastax-oss.atlassian.net/browse/PYTHON-73

基于SASL的身份验证尚未在Python Driver 2.x中实现。 您可以使用1.x驱动程序版本,该版本适用于所有最新的cassandra版本。

该驱动程序的master分支最近已修补。 这是工作示例:

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

auth_provider = PlainTextAuthProvider(username='cassandra', 
                                      password='cassandra')
cluster = Cluster(auth_provider=auth_provider)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM