pyodbcでSQL Serverにログインできない

真 岩崎 0 評価のポイント
2024-05-08T03:37:00.57+00:00

pyodbcからSQL Serverに接続したいのですが、ユーザ名に @ が含まれることで、サーバに接続できません。@をエスケープするためにURLエンコードおよび中括弧{}での囲い込みを試しましたが、前者はデコードがされず、後者はエスケープが出来ていない様子です。 こちら解決方法はありますでしょうか?下記は生じたエラーのイメージです。(データベース名等はあくまで例となります)

【トライ1】 pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER=sample.net;DATABASE=sampledb001;UID=user01@abc.com;PWD=ABC123')

--> InterfaceError: ('HY000', '[HY000] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Cannot open server "abc.com" requested by the login. The login failed. (40532) (SQLDriverConnect); [HY000] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Cannot open server "abc.com" requested by the login. (40532)'

【トライ2】 pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER=sample.net;DATABASE=sampledb001;UID=user01%40abc.com;PWD=ABC123')

--> InterfaceError: ('28000', "[28000] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Login failed for user 'user01%40abc.com'. Reason: Azure Active Directory only authentication is enabled. Please contact your system administrator. (18456) (SQLDriverConnect); [28000] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Login failed for user 'user01%40abc.com'. Reason: Azure Active Directory only authentication is enabled. Please contact your system administrator. (18456)"

【トライ3】 pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER=sample.net;DATABASE=sampledb001;UID={user01@abc.com};PWD=ABC123')

--> InterfaceError: ('HY000', '[HY000] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Cannot open server "abc.com" requested by the login. The login failed. (40532) (SQLDriverConnect); [HY000] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Cannot open server "abc.com" requested by the login. (40532)'

【トライ4】  pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER=sample.net;DATABASE=sampledb001;UID=user01@xyz.com;PWD=ABC123')

--> InterfaceError: ('HY000', '[HY000] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Cannot open server "xyz.com" requested by the login. The login failed. (40532) (SQLDriverConnect); [HY000] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Cannot open server "xyz.com" requested by the login. (40532)'

SQL Server
SQL Server
Microsoft リレーショナル データベース管理分析システムのファミリで、電子商取引、基幹業務、データ ウェアハウジングなどのソリューションで使用されています。
21 件の質問
0 件のコメント コメントはありません
{count} 件の投票