добрый день.
есть mariadb
mysql -V
mysql Ver 15.1 Distrib 5.5.68-MariaDB, for Linux (x86_64) using readline 5.1создал бд
MariaDB [none]> create database testdb;создал пользователя
MariaDB [none]> create user testuser identified by 'testpass';дал пользователю права на бд
MariaDB [none]> grant all privileges on testdb.* to testuser;
MariaDB [none]> flush privileges;возможно ли сделать так, чтобы пользователь при вводе
mysql -u testuser -p подключался только к "своей" базе?
в какую сторону копать?
>[оверквотинг удален]
> создал бд
> MariaDB [none]> create database testdb;
> создал пользователя
> MariaDB [none]> create user testuser identified by 'testpass';
> дал пользователю права на бд
> MariaDB [none]> grant all privileges on testdb.* to testuser;
> MariaDB [none]> flush privileges;
> возможно ли сделать так, чтобы пользователь при вводе
> mysql -u testuser -p подключался только к "своей" базе?
> в какую сторону копать?Так при mysql -u testuser -p он и так в свое окружение попадет, какие разрешены ему базу те и будут доступны, видны.
> Так при mysql -u testuser -p он и так в свое окружение
> попадет, какие разрешены ему базу те и будут доступны, видны.увы, нет
>> Так при mysql -u testuser -p он и так в свое окружение
>> попадет, какие разрешены ему базу те и будут доступны, видны.
> увы, нетЧто значит увы нет?!
Для пользователя testuser будут доступны только те базы которым разрешен ему доступ, по ДРУГОМУ НИ КАК!
> Что значит увы нет?!
> Для пользователя testuser будут доступны только те базы которым разрешен ему доступ,
> по ДРУГОМУ НИ КАК!# mysql -u testuser -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 9
Server version: 5.5.68-MariaDB MariaDB ServerCopyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> \s
--------------
mysql Ver 15.1 Distrib 5.5.68-MariaDB, for Linux (x86_64) using readline 5.1Connection id: 9
Current database: <---пусто
Current user: testuser@localhost
>[оверквотинг удален]
> Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
> Type 'help;' or '\h' for help. Type '\c' to clear the current
> input statement.
> MariaDB [(none)]> \s
> --------------
> mysql Ver 15.1 Distrib 5.5.68-MariaDB, for Linux (x86_64) using readline 5.1
> Connection id: 9
> Current database: <---пусто
> Current user:
> testuser@localhostВсе верно показывает, нет ни одной выбранной базы!!!
use testdb
После команда \s кажет Current database: testdb
show databases; смотрим доступные базы для пользователя.
> Все верно показывает, нет ни одной выбранной базы!!!
> use testdb
> После команда \s кажет Current database: testdbэто я тоже в курсе. в любом случает приходится делать это телодвижение. пусть будет так
> возможно ли сделать так, чтобы пользователь при вводе
> mysql -u testuser -p подключался только к "своей" базе?
> в какую сторону копать?как уже ранее сказали, он сможет подключится к тем базам данным, куда ему дали доступ.
на крайняк используйте:
$mysql -u пользователь -p пароль имя_базы_данныхчтобы при подключении к сервербу базы данных автоматически попал в интересующую базу данных
> на крайняк используйте:
> $mysql -u пользователь -p пароль имя_базы_данных
> чтобы при подключении к сервербу базы данных автоматически попал в интересующую базу
> данныхбез указания бд совсем никак?
как в postgre - в pg_hba прописал и всё
>> на крайняк используйте:
>> $mysql -u пользователь -p пароль имя_базы_данных
>> чтобы при подключении к сервербу базы данных автоматически попал в интересующую базу
>> данных
> без указания бд совсем никак?
> как в postgre - в pg_hba прописал и всёОткройте для себя волшебный мир alias!
B ~/.*rc пользователю пропишите mysql='/usr/bin/mysql -u $USER -p $password bd_name' - и тот будет попадать в свою базу сразу по вводу команды mysql.
> Откройте для себя волшебный мир alias!
> B ~/.*rc пользователю пропишите mysql='/usr/bin/mysql -u $USER -p $password bd_name' -
> и тот будет попадать в свою базу сразу по вводу команды
> mysql.да с этим тоже всё понятно. просто хотелось и рыбку съесть, и аквариум не разбить.
думаю, ветку можно закрывать.
PS. мужики, с праздником!
>> Откройте для себя волшебный мир alias!
>> B ~/.*rc пользователю пропишите mysql='/usr/bin/mysql -u $USER -p $password bd_name' -
>> и тот будет попадать в свою базу сразу по вводу команды
>> mysql.
> да с этим тоже всё понятно. просто хотелось и рыбку съесть, и
> аквариум не разбить.сидя с ледорубом вместо удочки у проруби ...
> он сможет подключится к тем базам данным, куда ему дали доступ.
ключевое "к базам", не "к базе"!
У пользователя нет никакой своей базы - у него есть набор привилегий по набору баз.
Если есть привилегии на две базы - какую считать своей?
> без указания бд совсем никак?А как оно узнает, куда вам надо, если нигде не указать?
В my.cnf можно, типа:[client]
user=username
host=localhost
password=p455w0rd
database=databasenameСм.
https://dev.mysql.com/doc/refman/8.0/en/option-files.html
https://mariadb.com/kb/en/configuring-mariadb-with-option-files/
https://tomlankhorst.nl/mysql-my-cnf-options-file/