2010-01-08 3 views
4

Имеет ли на MySql 5.1 и SQL Server 2008 (веб-издание, стандарт) какие-либо функциональные ограничения пароля, кроме ограничений по длине? Являются ли метасимволы в любой форме плохими идеями для использования, например, удар, труба, хеш, любая косая черта, морковь и т. Д.?ограничения пароля в SQL Server и MySql

Я знаю, что MySql 5.1 имеет ограничение длины пароля на 16 символов, которое жестко закодировано, но мне было интересно, есть ли какие-либо метасимволы (например, non alphanumerics) плохая идея для использования? И это верно в SQL Server 2008 Web Edition, Standard?

Так конкретно: могут символы, такие как:

/`~>:} {[]^успешно используется?

Я надеюсь, что это не имеет значения для базы данных, но я недостаточно понимаю о хранении паролей в системах баз данных предприятия, но точно знаю, и я искал подтверждение или объяснение.

+1

. астероид: спасибо за добрые слова. Наверное, хорошо, если вы не получите лучшего ответа, было бы здорово, если бы вы могли отметить мою s "принят" TIA, roland –

ответ

4
mysql> create user test identified by '/`~>:}{[]^'; 
Query OK, 0 rows affected (0.13 sec) 

да - вы можете войти на сайт с этой командной строки:

C:\Documents and Settings\rbouman2>mysql -utest -h127.0.0.1 -P3351 -p 
Enter password: ********** 

Я попытался ввести пароль непосредственно после -p, но это не работает для окон - это думает, что я хочу invoke more если я это сделаю. но я на 100% уверен, что это на оболочке Windows. Сам MySQL считает, что это действительный пароль.

+0

кратким и невероятно полезным. Спасибо! Интересно, знает ли кто-нибудь об этом для MSSQL .. – asteroid

+0

@Roland, Итак, каков личный пароль для сервера MySQL? – Pacerier

+0

@Pacerier, если вы используете чистый метод (http://dev.mysql.com/doc/refman/5.7/en/assigning-passwords.html), чтобы назначить пароль (т. Е. Не обновлять таблицу mysql.user напрямую), Я не думаю, что существует какой-либо предел, поскольку MySQL хранит хеш, а не фактический пароль. –

4

Все эти символы хороши в паролях SQL Server, но документы для резервного копирования являются отрывочными.

В документации MSDN on SQL Server password сила подразумевает, что любой символ, включая пробельные символы, разрешен в паролях SQL Server, но если он содержит пробел, он должен быть разграничен в операторах T-SQL.

Пароли Microsoft SQL Server могут содержать до 128 символов, включая буквы, символы и цифры. Поскольку логические имена, имена пользователей, роли и пароли часто используются в операторах Transact-SQL, некоторые символы должны быть заключены двойными кавычками (") или квадратными скобками ([]). Используйте эти разделители в операторах Transact-SQL, когда SQL Логин сервер, пользователь, роль или пароль имеет следующие характеристики:

  • содержит или начинается с символа пробела

  • начинается с $ или символ @

..

Документация MSDN on password policy явно подтверждает следующие символы:! $ #%

И, как вы уже знаете, в той же документации настоятельно рекомендуется использовать пароли, которые являются «как можно более длинными и сложными».

0

Остерегайтесь, несмотря на то, что MYSQL может работать, ваш php/http daemon/.htaccess может сделать некоторые wierdness для req, прежде чем передавать их, у меня был пароль с ($ и!), И он НЕ работал с веб-страницы php-mysql, но DID работает с консоли ... 8 символов. $ db_pass = "($ JlKl1!"; И что вы знаете, это терпит неудачу. измените пароль на "тест". и бам, это работает. Изменение пароля к чему-то нелепо длинным, (и полностью лишенной «$» или «!» Или «(»), и он также работал.

0

По моему опыту, это обратная косая \ и апостроф ', что вы . «будете хотеть, чтобы избежать в пароле MySQL Из моих тестов, следующие специальные символы, как представляется, отлично использовать:

[email protected]#$%^&*:./?=+-_[]{}()<> 

Кроме того, пароли 32-символьные, кажется, хорошо использовать, слишком

Смежные вопросы