パスワード最大長

 

MySQL 256文字
Oracle 30文字
PostgreSQL 制限なし
SQL Server 128文字

(8.0.31)

マニュアル記載なし
実機確認したところ、最大長は256文字


create user 'user1'@'%' identified by 'user1';
alter user 'user1'@'%' identified by '1234567890';

 

alter user 'user1'@'%' identified by '1234561234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890';

alter user 'user1'@'%' identified by '12345671234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890';

256文字 -> OK

257文字 -> ERROR 1396 (HY000): Operation ALTER USER failed for 'user1'@'%'

 

(19c)

-- 1. ユーザーパスワード

マニュアル記載なし
実機確認したところ、最大長は30文字

create user user1 identified by user1;
alter user user1 identified by 1234567890;


alter user user1 identified by 123456789012345678901234567890;

alter user user1 identified by 1234567890123456789012345678901;


30文字 -> OK

31文字 -> ORA-00972: 識別子が長すぎます。


-- 2. ダンプファイルの暗号化パスワード(ENCRYPTION_PASSWORD)

暗号化パスワードに許容される最大長は、通常は128バイトです。

 

(15)

https://qiita.com/tameguro/items/1881b8d5610d67fce15f

調べた限り上限はない模様
実機確認したところ、1億文字もOK


create user user1 with login encrypted password 'user1';

alter user user1 with login encrypted password '1234567890';


: > a.sql

echo -n "alter user user1 with login encrypted password '" >> a.sql
for i in {1..10000000}; do
echo -n "1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"
done >> a.sql
echo -n "';" >> a.sql


\timing 1
\i a.sql

1千万文字 -> OK
1億文字 -> OK 時間: 951106.182 ミリ秒(15:51.106)

 

(2019)

https://learn.microsoft.com/ja-jp/sql/relational-databases/security/password-policy?view=sql-server-ver16

パスワードには最大 128 文字まで使用できます。

create login user1 with password='Xx!Xx!Xx!123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890', default_database=test;

→ メッセージ 15156、レベル 16、状態 1、行 1
指定したパスワードが長すぎます。パスワードは 128 文字以下で指定してください。

create login user2 with password='Xx!Xx!Xx123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890', default_database=test;

→ OK