Spec-Zone .ru
спецификации, руководства, описания, API
|
Пользователи MySQL должны использовать следующие направляющие линии, чтобы сохранить пароли безопасными.
Когда Вы выполняете клиентскую программу, чтобы соединиться с сервером MySQL, это нецелесообразно, чтобы определить Ваш пароль в пути, который представляет это открытию другими пользователями. Методы, которые можно использовать, чтобы определить Ваш пароль, когда Вы выполняете клиентские программы, перечисляются здесь, наряду с оценкой рисков каждого метода. Короче говоря, у самых безопасных методов должна быть клиентская подсказка программы для пароля или определить пароль в должным образом защищенном файле опции.
Используйте mysql_config_editor утилиту, которая позволяет Вам
сохранить учетные данные аутентификации в зашифрованном названном файле входа в систему .mylogin.cnf
. Файл может быть считан позже клиентскими программами
MySQL, чтобы получить учетные данные аутентификации для того, чтобы соединиться с MySQL Server. См. Раздел 4.6.6, "mysql_config_editor — MySQL Configuration Utility"
.
Используйте
a -p
или your_pass
--password=
опция на
командной строке. Например: your_pass
shell> mysql -u francis -pfrank db_name
Это удобно, но небезопасно. На некоторых системах Ваш пароль становится видимым к системным программам состояния, таким как постскриптум, который может быть вызван другими пользователями к строкам команды отображения. Клиенты MySQL обычно перезаписывают параметр пароля командной строки с нулями во время их последовательности инициализации. Однако, есть все еще краткий интервал, во время которого значение видимо. Кроме того, на некоторых системах эта стратегия перезаписи неэффективна, и пароль остается видимым к постскриптуму (системы Unix SystemV, и возможно другие подвергаются этой проблеме.)
Если Ваша операционная среда устанавливается, чтобы вывести на экран Вашу текущую команду в панели title Вашего окна терминала, пароль остается видимым, пока команда работает, даже если команда прокрутила из представления в области контента окна.
Используйте -p
или --password
опция на командной строке без значения пароля определяется. В этом
случае клиентская программа требует пароля в интерактивном режиме:
shell> mysql -u francis -p db_name
Enter password: ********
"*
"символы
указывают, где Вы вводите свой пароль. Пароль не выводится на экран, поскольку Вы вводите его.
Это более безопасно, чтобы ввести Ваш пароль этот путь чем определить это на командной строке, потому что это не видимо другим пользователям. Однако, этот метод введения пароля является подходящим только для программ, которые Вы выполняете в интерактивном режиме. Если Вы хотите вызвать клиент из сценария, который работает нев интерактивном режиме, нет никакой возможности ввести пароль от клавиатуры. На некоторых системах можно даже найти, что первая строка Вашего сценария читается и интерпретируется (неправильно) как Ваш пароль.
Сохраните свой пароль в файле опции.
Например, на Unix, можно перечислить свой пароль в [client]
раздел .my.cnf
файл в Вашем корневом каталоге:
[client]password=your_pass
Чтобы бережно хранить пароль, файл не должен быть доступным для любого, но вас непосредственно.
Чтобы гарантировать это, установите режим доступа к файлу в 400
или
600
. Например:
shell> chmod 600 .my.cnf
Чтобы назвать из командной строки определенный файл опции, содержащий пароль, используйте --defaults-file=
опция, где file_name
file_name
имя полного пути к файлу. Например:
shell> mysql
--defaults-file=/home/francis/mysql-opts
Раздел 4.2.3.3, "Используя Файлы Опции", обсуждает файлы опции более подробно.
Сохраните свой пароль в MYSQL_PWD
переменная
окружения. См. Раздел 2.12, "Переменные окружения".
Этот метод определения Вашего пароля MySQL нужно считать чрезвычайно
небезопасным и не должен использоваться. Некоторые версии постскриптума
включают опцию, чтобы вывести на экран среду выполнения процессов. На некоторых системах, если Вы
устанавливаете MYSQL_PWD
, Ваш пароль представляется любому другому
пользователю, который выполняет постскриптум. Даже на
системах без такой версии постскриптума,
неблагоразумно предположить, что нет никаких других методов, которыми пользователи могут исследовать
среды процесса.
На Unix mysql клиент пишет запись выполняемых операторов к файлу истории
(см. Раздел 4.5.1.3,
"mysql, Регистрирующий"). По умолчанию этот файл
называют .mysql_history
и создается в Вашем корневом каталоге. Пароли могут быть
записаны как простой текст в SQL-операторах такой как CREATE USER
, GRANT
, и SET
PASSWORD
, так, если Вы используете эти операторы, они зарегистрированы файл истории. Чтобы
бережно хранить этот файл, используйте рестриктивный режим доступа, тот же самый путь как описано ранее для
.my.cnf
файл.
Если Ваш интерпретатор команд будет сконфигурирован, чтобы поддержать историю, то любой файл, в котором
сохраняются команды, будет содержать пароли MySQL, в которые вводят командная строка. Например, использование
удара ~/.bash_history
. У любого
такого файла должен быть рестриктивный режим доступа.