Login mysql: how to log in to mysql and query the database from linux terminal

CREATE LOGIN SQL Server — Oracle PL/SQL •MySQL •MariaDB •SQL Server •SQLite

В этом учебном пособии вы узнаете, как использовать CREATE LOGIN в SQL Server с синтаксисом и примерами.

Описание

Оператор CREATE LOGIN создает идентификатор, используемый для подключения к экземпляру SQL Server. Login затем сопоставляется с пользователем базы данных (поэтому перед созданием пользователя на SQL Server вы должны сначала создать Login).

Существует четыре типа логинов, которые можно создать в SQL Server:

  1. Вы можете создать Login с использованием проверки подлинности Windows.
  2. Вы можете создать Login с использованием проверки подлинности SQL Server.
  3. Вы можете создать Login из сертификата.
  4. Вы можете создать Login из асимметричного ключа.

Синтаксис

Синтаксис оператора CREATE LOGIN с использованием проверки подлинности Windows:

CREATE LOGIN [domain_name\login_name]
FROM WINDOWS
[ WITH DEFAULT_DATABASE = database_name
| DEFAULT_LANGUAGE = language_name ];

ИЛИ Синтаксис оператора CREATE LOGIN с использованием проверки подлинности SQL Server:

CREATE LOGIN login_name
WITH PASSWORD = { ‘password’ | hashed_password HASHED } [ MUST_CHANGE ]
[ , SID = sid_value
| DEFAULT_DATABASE = database_name
| DEFAULT_LANGUAGE = language_name
| CHECK_EXPIRATION = { ON | OFF }
| CHECK_POLICY = { ON | OFF }
| CREDENTIAL = credential_name ];

ИЛИ
Синтаксис оператора CREATE LOGIN с использованием сертификата:

CREATE LOGIN login_name
FROM CERTIFICATE certificate_name;

ИЛИ
Синтаксис оператора CREATE LOGIN с использованием асимметричного ключа:

CREATE LOGIN login_name
FROM ASYMMETRIC KEY asym_key_name;

Параметры или аргументы

domain_name — имя учетной записи домена Windows.
login_name – наименование login.
database_name — база данных по умолчанию для которой назначен Login.
language_name — язык по умолчанию для назначения Login.
CHECK_EXPIRATION — по умолчанию он установлен в положение OFF. Этот параметр определяет, будет ли применяться политика истечения срока действия пароля. Вы должны указать CHECK_EXPIRATION = ON, когда вы используете опцию MUST_CHANGE.
password — пароль для Login.
hashed_password — хешированное значение пароля для Login.
MUST_CHANGE — используется, когда вы хотите принудительно изменить пароль при первом входе в систему.
sid_value — GUID логина. Если этот параметр опущен, SQL Server назначит идентификатор GUID для входа.
credential_name — имя учетных данных для присвоения имени входа.
CERTIFICATE_NAME — имя сертификата для присвоения имени.
asym_key_name — имя асимметричного ключа для назначения для входа.

Примечание

  • См. также оператор ALTER LOGIN и оператор DROP LOGIN.

Пример — проверка подлинности Windows

Рассмотрим, как создать вход с использованием проверки подлинности Windows в SQL Server (Transact-SQL).
Например:

Transact-SQL

CREATE LOGIN [my_domain\admin]
FROM WINDOWS;



CREATE LOGIN [my_domain\admin]

FROM WINDOWS;

Этот пример CREATE LOGIN создаст новый Login, называемый [my_domain\admin], который использует проверку подлинности Windows.

Пример — проверка подлинности SQL Server

Затем давайте посмотрим, как создать Login с помощью проверки подлинности SQL Server.
Например:

Transact-SQL

CREATE LOGIN admin
WITH PASSWORD = ‘my_pass’;



CREATE LOGIN admin

WITH PASSWORD = ‘my_pass’;

Этот пример CREATE LOGIN создаст новый Login, называемый admin, который использует аутентификацию SQL Server и имеет пароль ‘my_pass’.

Если мы хотим, чтобы пароль был изменен при первом входе в систему, то мы могли бы изменить наш пример следующим образом:

Transact-SQL

CREATE LOGIN admin
WITH PASSWORD = ‘my_pass’ MUST_CHANGE,
CHECK_EXPIRATION = ON;



CREATE LOGIN admin

WITH PASSWORD = ‘my_pass’ MUST_CHANGE,

CHECK_EXPIRATION = ON;

В этом примере используется параметр MUST_CHANGE, чтобы принудительно изменить пароль при первом входе в систему. Важно отметить, что опция MUST_CHANGE не может использоваться, когда CHECK_EXPIRATION выключен.

Поэтому в этом примере также указывается «CHECK_EXPIRATION = ON». В противном случае оператор CREATE LOGIN вызовет ошибку.

Пример — сертификат

Давайте посмотрим, как создать вход из сертификата в SQL Server (Transact-SQL).
Например:

Transact-SQL

CREATE LOGIN admin
FROM CERTIFICATE certificate1;



CREATE LOGIN admin

FROM CERTIFICATE certificate1;

Этот пример CREATE LOGIN создаст новый Login, называемый admin, который использует сертификат под названием certificate1.

Пример — Асимметричный ключ

Давайте посмотрим, как создать вход с использованием асимметричного ключа в SQL Server (Transact-SQL).

Transact-SQL

CREATE LOGIN admin
FROM ASYMMETRIC KEY asym_key1;



CREATE LOGIN admin

FROM ASYMMETRIC KEY asym_key1;

Этот пример CREATE LOGIN создаст новый Login, называемый admin, который использует асимметричный ключ, называемый asym_key1.

как войти в mysql и запросить базу данных из терминала linux

MySQL позволяет несколько различных способов аутентификации пользователей. Они называются «плагинами аутентификации», и каждый пользователь может указать свой собственный плагин. Чтобы увидеть, какой плагин назначен пользователю, вы можете использовать значение plugin в таблице mysql.user . В системах Ubuntu (и, возможно, других системах Linux) настройки по умолчанию для новой установки MySQL дают пользователю MySQL root плагин, отличный от обычных пользователей, что объясняет замеченное вами несоответствие.

В частности, пользователю MySQL root назначается аутентификация auth_socket по умолчанию, в то время как обычным пользователям назначается либо mysql_native_password (до MySQL 8), либо caching_sha2_password (MySQL 8+). То есть вы увидите что-то вроде

 # До MySQL 8
mysql> ИСПОЛЬЗОВАТЬ mysql;
mysql> ВЫБЕРИТЕ плагин ОТ mysql. user, ГДЕ user='root';
+-------------+
| плагин |
+-------------+
| авторизация_сокет |
+-------------+
mysql> ВЫБЕРИТЕ плагин ОТ mysql.user ГДЕ user='basic_db_user';
+--------------------------------------+
| плагин |
+--------------------------------------+
| mysql_native_password |
+--------------------------------------+
 

или

 # MySQL 8 и выше
mysql> ИСПОЛЬЗОВАТЬ mysql;
mysql> ВЫБЕРИТЕ плагин ОТ mysql.user, ГДЕ user='root';
+-------------+
| плагин |
+-------------+
| авторизация_сокет |
+-------------+
mysql> ВЫБЕРИТЕ плагин ОТ mysql.user ГДЕ user='basic_db_user';
+--------------------------------------+
| плагин |
+--------------------------------------+
| кэширующий_sha2_пароль |
+--------------------------------------+
 

auth_socket — это аутентификация сокета , которая работает путем сопоставления подключающегося пользователя Unix с пользователем MySQL с таким же именем, если он есть. это только работает при локальном подключении, что является одной из причин, по которой это хорошо для привилегированного пользователя MySQL root ; под плагином auth_socket кто-то не может удаленно получить доступ к вашей базе данных в качестве ее пользователя root (если только у них также нет доступа root уровня ОС , и в этом случае они уже владеют вашей машиной).

Оба mysql_native_password и caching_sha2_password являются формами аутентификации по паролю . Чтобы понять разницу, которую вы видите между доступом к MySQL в качестве пользователя root и в качестве обычного пользователя, мы сравним процесс входа в систему между аутентификацией по паролю и аутентификацией по сокету.

Аутентификация по паролю

Допустим, вы пытаетесь получить доступ к локальному серверу MySQL, используя обычно рекомендуемую команду. Ваш пользователь ОС Unix/Linux — joeuser , и вы хотите подключиться к серверу MySQL как пользователь MySQL joesql 9.0004 . Вы вводите

 joeuser@localhost:~$ mysql -u joesql -p
Введите пароль:
Добро пожаловать в монитор MySQL. Команды заканчиваются на ; или \г.
...
 

Соединение установлено успешно. Здесь произошло следующее: программа mysql (используйте $ which mysql , чтобы найти ее в вашей системе) вызывается с аргументами командной строки -u, joesql, -p . Из них MySQL понимает, что вы пытаетесь подключиться как пользователь MySQL joesql . Он проверяет plugin значение mysql.user для joesql и находит, допустим, caching_sha2_password . Таким образом, он знает, что вам нужен пароль для подключения. Из аргумента командной строки -p он знает, что вы хотите попросить вас ввести свой пароль, и он это делает. Вы вводите свой пароль, и MySQL хеширует его и сравнивает этот хэш с тем, что он сохранил в качестве пароля для joesql . Это соответствует, поэтому вам разрешено подключаться как пользователю MySQL джоскл .

Аутентификация сокета

Теперь вы хотите получить доступ к локальному серверу MySQL как пользователь root MySQL . Если вы наивно попытаетесь выполнить ту же команду, что и для обычного пользователя joesql , вы столкнетесь с отмеченной вами проблемой:

 joeuser@localhost:~$ mysql -u root -p
Введите пароль:
ОШИБКА 1698 (28000): доступ запрещен для пользователя «root» @ «localhost»
 

Это происходит, даже если у вас есть пароль, определенный для MySQL пользователь root и введите его при появлении запроса. Итак, что случилось? Как и прежде, вы вызвали программу mysql с аргументами командной строки -u, root, -p , которые сообщают MySQL, что вы хотите подключиться как пользователь root MySQL . Однако теперь, когда он проверяет значение plugin mysql.user для root , он находит auth_socket вместо одного из значений аутентификации пароля.

Таким образом, вместо того, чтобы запрашивать пароль, он проверяет указанный файл сокета, который ваша система Unix/Linux создала специально для этой цели и который включает имя пользователя ОС, от имени которого вы действуете. Вместо сопоставления паролей auth_socket соответствует именам пользователей. Таким образом, отметив, что используемое вами имя пользователя ОС, joeuser , не равно имени пользователя MySQL, под которым вы пытаетесь подключиться, root , оно запрещает соединение с серьезно бесполезным сообщением об ошибке Доступ запрещен для пользователя «корень» @ «локальный хост» .

Итак, раздраженный, вы выполняете стандартный ход Linux, добавляя «sudo», чтобы заставить его делать то, что вы хотите:

 joeuser@localhost:~$ sudo mysql -u root -p
[sudo] пароль для joeuser:
Введите пароль:
Добро пожаловать в монитор MySQL. Команды заканчиваются на ; или \г.
...
 

Это работает. Почему это сработало? Когда оболочка интерпретирует вашу команду, первое, что она обнаруживает, это то, что вы используете sudo в качестве пользователя root Unix , поэтому она запрашивает ваш пароль sudo . После ввода оставшаяся часть команды выполняется от имени этого пользователя. Таким образом, файл сокета, созданный при подключении к серверу MySQL, идентифицируется с корнем Unix , а не joeuser , и аутентификация сокета MySQL соответствует этому пользователю MySQL с тем же именем. Аутентификация пройдена в этот момент, , но , вы специально запросили ваш пароль с помощью опции -p , поэтому MySQL покорно обязуется запрашивать пароль пользователя MySQL root . После его ввода вы успешно подключились к локальному серверу MySQL.

Как только вы это поймете, возникает очевидный вопрос: если аутентификация через сокет основана на совпадении имен пользователей (имя пользователя Unix и имя пользователя MySQL), нужен ли вообще пароль? Это не так! Вы можете оставить -p и сделайте это:

 joeuser@localhost:~$ sudo mysql -u root
[sudo] пароль для joeuser:
Добро пожаловать в монитор MySQL. Команды заканчиваются на ; или \г.
...
 

и пропустите ввод пароля MySQL root . Это работает только для пользователя MySQL root и только в том случае, если этот пользователь настроен на использование auth_socket в качестве своего плагина аутентификации.

Сводка

В соответствии со стандартными значениями по умолчанию для MySQL в последних версиях Ubuntu (по крайней мере, 16.04-20.04, возможно, и в других), это команды для наиболее простого подключения к оболочка mysql :

  • MySQL root пользователь: $ sudo mysql -u root

    (введите пароль sudo)

  • Другой пользователь MySQL: $ mysql -u <имя пользователя> -p

    (введите пароль MySQL)

Конечно, вы спрашивали о Debian Linux, а не об Ubuntu. Ubuntu происходит непосредственно от Debian, и я предполагаю, что это похоже на то, что я сказал здесь. Приветствуются комментарии о том, как приведенное выше объяснение различается в разных дистрибутивах и версиях Linux.

Как подключиться к MySQL из командной строки

Как подключиться к MySQL из командной строки

В этой статье описывается, как подключиться к MySQL из командной строки с помощью программы mysql . Вы можете использовать программу mysql как быстрый и простой способ прямого доступа к вашим базам данных.

Содержание

  • Подключение к MySQL из командной строки
  • Дополнительная информация
Подключение к MySQL из командной строки

Чтобы подключиться к MySQL из командной строки, выполните следующие действия:

  1. Войдите в свою учетную запись A2 Hosting, используя SSH.
  2. В командной строке введите следующую команду, заменив имя пользователя своим именем пользователя:
     mysql -u имя пользователя -p 
  3. В ответ на запрос «Введите пароль» введите свой пароль. Когда вы вводите правильный пароль, появляется приглашение mysql>.
  4. Чтобы отобразить список баз данных, введите следующую команду в командной строке mysql>:

     показать базы данных; 

    Не забудьте поставить точку с запятой в конце инструкции.

  5. Чтобы получить доступ к определенной базе данных, введите следующую команду в приглашении mysql>, заменив dbname именем базы данных, к которой вы хотите получить доступ:

     use dbname; 

    Убедитесь, что вы не забыли поставить точку с запятой в конце инструкции.

  6. После доступа к базе данных вы можете выполнять SQL-запросы, составлять таблицы и т. д. Дополнительно:

    • Чтобы просмотреть список команд MySQL, введите help в командной строке mysql>.
    • Чтобы выйти из программы mysql , введите \q в командной строке mysql>.

    Когда вы запускаете команду в приглашении mysql> , вы можете получить предупреждающее сообщение, если MySQL столкнется с проблемой. Например, вы можете запустить запрос и получить сообщение, похожее на следующее:

     Запрос выполнен успешно, затронуто 0 строк, 1 предупреждение (0,04 с). 

    Чтобы просмотреть полное предупреждающее сообщение, введите следующую команду:

     ПОКАЗАТЬ ПРЕДУПРЕЖДЕНИЯ; 
Дополнительная информация
  • Дополнительные сведения о программе командной строки mysql см. на странице http://dev.mysql.com/doc/refman/5.1/en/mysql.html.
  • Чтобы узнать больше о размещении базы данных MySQL с помощью A2 Hosting, нажмите здесь.

Разместите свою базу данных MySQL @ A2

Сведения о статье

  • Уровень: средний
Другие товары в этой категории
  • Подключение к MySQL из командной строки
  • Подключение к MySQL с помощью PHP
  • Подключение к MySQL с помощью Python
  • Подключение к MySQL с помощью Node.js
  • Подключение к MySQL с помощью Perl
  • Подключение к MySQL с помощью Microsoft . NET
  • Импорт и экспорт базы данных MySQL
  • Удаленные соединения MySQL
  • клиентских приложений MySQL
  • Управление базами данных, пользователями и таблицами MySQL из командной строки
  • Преобразование базы данных MySQL в UTF-8
  • Преобразование часового пояса MySQL
  • Резервное копирование базы данных MySQL с использованием заданий cron
  • Резервное копирование базы данных MySQL с использованием AutoMySQLBackup
  • База данных information_schema
  • Сброс корневого пароля MySQL
  • MySQL не хватает памяти или не запускается
  • Привилегии пользователя MySQL на общих серверах
  • Создание и выполнение хранимых функций и процедур MySQL
  • просмотров MySQL
  • MySQL запускает
  • Работа с ядрами баз данных MySQL
  • Проверка базы данных MySQL и размеров таблиц
  • Восстановление баз данных и таблиц MySQL
  • Включение журнала медленных запросов в MySQL
  • Переименование базы данных MySQL
  • Использование индексов для повышения производительности запросов MySQL
  • Ограничение доступа к порту MySQL
  • Установка phpMyAdmin на управляемые учетные записи хостинга
  • Создание установки MySQL для локального тестирования
  • Устранение неполадок определителя MySQL
  • Использование SELECT INTO OUTFILE в MySQL
  • Определение версии MySQL
  • Обработка ошибки MySQL 1064

Показать больше

Статьи по теме
  • Подключение к PostgreSQL с помощью psql
  • Подключение к SQLite из командной строки
  • Подключение к MySQL с помощью PHP
  • Подключение к MySQL с помощью Python
  • Подключение к MySQL с помощью Microsoft .