データベース

データベースに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Microsoft SQL Server)
SQLserverのユーザID、PASSに使えない文字
投稿日時: 17/09/29 13:33:30
投稿者: MJ

いつもお世話になっております。
 
SQLserverでユーザー設定をしようと思っています。
 
IDとパスワードの設定をする際に
使えない文字(記号)などを確認して検討していますが
 
・基本的にID、パスワードとも記号は使わない方が良い
(a〜z、0〜9の英数文字のみ)の意見と
という意見と
 
・確かに使えない記号はあるが一部はOKなはず(%や#や_)
という意見にわかれたため改めて調べてみたのですが、
明確にわからず(調べ方が悪いと思うのですが)
ご教示いただけたら大変ありがたいです。
 
 

回答
投稿日時: 17/10/02 11:42:49
投稿者: sk

MJ さんの引用:
SQLserverでユーザー設定をしようと思っています。

とりあえず Windows 認証ではなく SQL Server 認証による
ログインの話だと仮定して、
 
MJ さんの引用:
IDとパスワードの設定をする際に
使えない文字(記号)などを確認して検討していますが
  
・基本的にID、パスワードとも記号は使わない方が良い
(a〜z、0〜9の英数文字のみ)の意見と
という意見と
  
・確かに使えない記号はあるが一部はOKなはず(%や#や_)
という意見にわかれたため改めて調べてみたのですが、
明確にわからず(調べ方が悪いと思うのですが)

TechNet より:
https://technet.microsoft.com/ja-jp/library/ms189751(v=sql.105).aspx
 
引用:
SQL Server 認証ログインは sysname 型であり、
識別子のルールに従っている必要があります。
このログインに "\" を含めることはできません

TechNet より:
https://technet.microsoft.com/ja-jp/library/ms191240(v=sql.105).aspx
 
引用:
sysname データ型は、オブジェクト名を格納するテーブル列、変数、
およびストアド プロシージャ パラメータに使用します。
sysname の正確な定義は識別子の規則に関係しています。
したがって、SQL Server のインスタンス間で異なることがあります
sysname と nvarchar(128) は、sysname が既定で NOT NULL であることを除いて、
機能面では同じです。以前のバージョンの SQL Server では、sysname は
varchar(30) として定義されています。

TechNet より:
https://technet.microsoft.com/ja-jp/library/ms175874(v=sql.105).aspx
 
引用:
標準識別子の形式に関する規則は、データベースの互換性レベルにより異なります
互換性レベルは、ALTER DATABASE を使用して設定できます。

引用:
SQL Server では、識別子の先頭にある一定の記号には特別な意味があります。
アット マークで始まる標準識別子は、常にローカル変数またはローカル パラメーターを表し、
他の種類のオブジェクトの名前としては使用できません。
番号記号で始まる識別子は一時テーブルまたは一時プロシージャを表します。
2 つの番号記号 (##) で始まる識別子は、グローバルな一時オブジェクトを表します。
1 つまたは 2 つの番号記号で始まる名前を、他の種類のオブジェクトの名前として
使用することもできますが、このような番号記号の使用はお勧めしません
 
一部の Transact-SQL 関数の名前は、2 つのアット マーク (@@) から始まります。
これらの関数との混同を避けるために、@@ から始まる名前は使用しないでください。

TechNet より:
https://technet.microsoft.com/ja-jp/library/ms161959(v=sql.110).aspx
 
引用:
パスワードの複雑性のポリシーが適用される場合、
新しいパスワードは次のガイドラインを満たしている必要があります。
 
・パスワードはユーザー アカウント名を含まない。
 
・パスワードは 8 文字以上である。
 
・パスワードは次の 4 つのカテゴリのうちの 3 つのカテゴリの文字を含む。
 
  ・ラテン文字の大文字 (A 〜 Z)
 
  ・ラテン文字の小文字 (a 〜 z)
 
  ・算用数字 (0 〜 9)
 
  ・感嘆符 (!)、ドル記号 ($)、番号記号 (#)、パーセント記号 (%) などの英数字以外の文字
 
パスワードには最大 128 文字まで使用できます。

TechNet より:
https://technet.microsoft.com/ja-jp/library/ms161962(v=sql.105).aspx
 
引用:
OLE DB または ODBC の接続文字列で使用する場合、
ログインまたはパスワードの文字に、[] {}() , ; ? * ! @ は含めないでください。
これらの文字は、接続の初期化や、接続の値を区切る場合に使用されています。

投稿日時: 17/10/02 13:26:03
投稿者: MJ

skさん
 
いつもお世話になっております。
 
うーん、難しいですね。
理解できていないところがたくさんあるので
社内で共有して再考します。
 
ご回答をありがとうございました。