def modify_url_for_impersonation(cls, url: URL, impersonate_user: bool, username: Optional[str]) -> None: """ Modify the SQL Alchemy URL object with the user to impersonate if applicable. :param url: SQLAlchemy URL object :param impersonate_user: Flag indicating if impersonation is enabled :param username: Effective username """ if impersonate_user and username is not None: url.username = username
def modify_url_for_impersonation(cls, url: URL, impersonate_user: bool, username: Optional[str]) -> None: """ Modify the SQL Alchemy URL object with the user to impersonate if applicable. :param url: SQLAlchemy URL object :param impersonate_user: Flag indicating if impersonation is enabled :param username: Effective username """ if impersonate_user and username is not None: if url.drivername == "drill+odbc": url.query["DelegationUID"] = username elif url.drivername == "drill+jdbc": url.query["impersonation_target"] = username else: url.username = username
from sqlalchemy import create_engine from sqlalchemy.engine.url import URL from sqlalchemy.orm import sessionmaker, Session, scoped_session from .config import database_config __engine_url = URL(database_config['driver']) __engine_url.username = database_config['user'] __engine_url.password = database_config['password'] __engine_url.host = database_config['host'] __engine_url.database = database_config['name'] engine_url = str(__engine_url) __engine = create_engine(str(__engine_url) + '?charset=utf8') class __Database: __session = None def __init__(self, session_maker): """ :type session_maker: sessionmaker """ self.__session__maker = session_maker def get_session(self): """