Главная страница
Навигация по странице:

  • Field Type Null Key

  • Insert into db (host, user, db, select_priv, insert_priv, update_priv)

  • Привилегии, предоставляемые MySQL Таблица 3 - Привилегии пользователя 4

  • Привилегия Колонка Где используется

  • Reload_priv, Shutdown_priv, Process_priv и File_priv

  • Таблица 4 - Опции команды MySQLadmin

  • Mysqlaccess Используется для проверки привилегий пользователя для доступа к конкретной базе данных. Общий синтаксис: mysqlaccess

  • отчет. Учебная практика 4ИП. Практическая работа 1 2 Построение er модели. 2 Практическая работа 2. 10 Выборка с использованием условий отбора. 10


    Скачать 1.35 Mb.
    НазваниеПрактическая работа 1 2 Построение er модели. 2 Практическая работа 2. 10 Выборка с использованием условий отбора. 10
    Анкоротчет
    Дата11.04.2021
    Размер1.35 Mb.
    Формат файлаdoc
    Имя файлаУчебная практика 4ИП.doc
    ТипПрактическая работа
    #193658
    страница11 из 12
    1   ...   4   5   6   7   8   9   10   11   12

    Если пароль был случайно забыт, чтобы его задать по новой, придется стереть файлы mysql.frm mysql.MYI и mysql.MYD из папки с базами данных, затем запустить скрипт mysql_install_db и повторить все по новой. Можно воспользоваться ключом MYSQL и ввести --skip-grant-tables, при этом все пароли будут имеет пустое поле.

    Команда имеет вид mysqld --skip-grant-tables.

    Пояснения:

    1.Команда insert вставляет данные в таблицу, не забывайте завершать команды ';'.

    2.При вводе пароля используйте функцию password(), иначе пароль работать не будет!

    3.Все пароли шифруются mysql, поэтому в поле Password вы видите абракадабры. Это делается в целях безопасности.

    4.Не есть хорошей практикой назначать привилегии пользователям в таблице user, так как в этом случае они являются глобальными и распространяются на все базы данных. Предоставляйте привилегии каждому пользователю к конкретной базе данных в таблице db, которая будет рассмотрена далее.

    5.При задании имени хоста для входа через сеть рекомендуется явно указывать полное имя хоста, а не '%'. В приведенном выше примере пользователю mary разрешается вход на сервер со всех машин домена tomsk.ru. Можно также указывать IP-адреса машин и маски подсетей для большей безопасности.

    Таблица Db

    Определяет к каким базам данных каким пользователям и с каких хостов разрешен доступ. В этой таблице можно предоставлять каждому пользователю доступ к базам данных и назначать привилегии. Eсли выполнить команду showcolumnsfromdb; получим следующее:

    Таблица 1 - Структура таблицы Db

    Field

    Type

    Null

    Key

    Default

    Extra

    Host

    char(60)




    PRI







    Db

    char(32)




    PRI







    User

    char(16)




    PRI







    Select_priv

    char(1)







    N




    Insert_priv

    char(1)







    N




    Update_priv

    char(1)







    N




    Delete_priv

    char(1)







    N




    Create_priv

    char(1)







    N




    Drop_priv

    char(1)







    N




    • По умолчанию, все привилегии установлены в 'N'. Например, предоставим юзеру mary доступ к базе данных mysql и дадим ему привилегии select, insert и update (описание основных команд mysql будет дано в следующих лабораторных работах, сейчас ваша цель увидеть, как работают таблицы привилегий).

    • Для справки:


      Insert into db (host, user, db, select_priv, insert_priv, update_priv)

      Values (''localhost', 'your_name', mysql, 'Y', 'Y', 'Y');

    • Привилегии, устанавливаемые в таблице db, распространяются только на базу данных library. Если же установить эти привилегии в таблице user, то они будут распространяться и на другие базы данных, даже если доступ к ним и не установлен явно.

    Таблица Host

    Таблица host используется для расширения диапазона доступа в таблице db. К примеру, если доступ к какой-либо базе данных должен быть предоставлен более чем одному хосту, тогда следует оставить пустой колонку host в таблице db, и внести в таблицу host необходимые имена хостов. Выполним команду

    show columns from host;

    Таблица 2 - Структура таблиц Host

    Field

    Type

    Null

    Key

    Default

    Extra

    Host

    char(60)




    PRI







    Db

    char(32)




    PRI







    Select_priv

    char(1)







    N




    Insert_priv

    char(1)







    N




    Update_priv

    char(1)







    N




    Delete_priv

    char(1)







    N




    Create_priv

    char(1)







    N




    Drop_priv

    char(1)







    N




    Как видно из таблицы, здесь также можно задавать привилегии для доступа к базе данных.Они обычно редко используются без необходимости. Все привилегии доступа нужно задавать в таблице db для каждого пользователя, а в таблице host только перечислить имена хостов.Сервер читает все таблицы, проверяет имя пользователя, пароль, имя хоста, имя базы данных, привилегии.Если в таблице db привилегии select, insert установлены в 'Y', а в таблице host в 'N', то в итоге юзер все равно получит 'Y'.Чтобы не вносить путаницы, лучше назначать привилегии в таблице db.

    Эти 3 таблицы являются основными.В новых версиях MySQL, начиная с 3.22 добавлены еще 2 таблицы- tables_priv и columns_priv, которые позволяют задать права доступа к определенной таблице в базе данных и даже к определенной колонке. Они работают подобно таблице db, только ссылаются на таблицы и колонки. Также, начиная с версии 3.22 можно использовать команду GRANT для предоставления доступа к базам данных, таблицам и колонкам таблиц, что избавляет от необходимости вручную модифицировать таблицы db, tables_priv и columns_priv. Команда GRANT будет подробно рассмотрена в следующих разделах.

    Привилегии, предоставляемые MySQL

    Таблица 3 - Привилегии пользователя4

    Привилегия

    Колонка

    Где используется

    select

    Select_priv

    таблицы

    insert

    Insert_priv

    таблицы

    Update

    Update_priv

    таблицы

    delete

    Delete_priv

    таблицы

    index

    Index_priv

    таблицы

    alter

    Alter_priv

    таблицы

    create

    Create_priv

    БД, таблицы, индексы

    drop

    Drop_priv

    БД или таблицы

    grant

    Grant_priv

    БД или таблицы

    References

    References_priv

    БД или таблицы

    reload

    Reload_priv

    администрирование сервера

    Shutdown

    Shutdown_priv

    администрирование сервера

    Process

    Process_priv

    администрирование сервера

    file

    File_priv

    доступ к файлам на сервере


    Основные утилиты MySQL.

    В состав дистрибутива MySQL входят следующие утилиты:

    • mysqld

    • mysql

    • Mysqladmin

    • mysqlaccess

    • mysqlshow

    • mysqldump

    • isamchk

    Mysqladmin

    Утилита для администрирования сервера. Может использоваться администратором, а также некоторыми пользователями, которым предоставлены определенные привилегии, например – Reload_priv, Shutdown_priv, Process_priv и File_priv. Данная команда может использоваться для создания баз данных, изменения пароля пользователя(администратор может изменить пароль любому пользователю, а рядовой пользователь – только свой собственный), перезагрузки и остановки сервера, просмотра списка процессов, запущенных на сервере. Mysqladmin поддерживает следующие команды:

    Таблица 4 - Опции команды MySQLadmin

    Create [database_name]

    Создает базу данных

    Drop [database_name]

    Удаляет базу данных и все таблицы в ней

    Reload

    Перезагружает сервер

    Shutdown

    Останавливает работу сервера MySQL

    Processlist

    Выводит список процессов на сервере

    Status

    Выводит сообщение о статусе сервера

    Пример использования mysqladmin для изменения пароля:

    mysqladmin -u your_name password your_pass

    Следует заметить, что в случае использования mysqladmin для установки пароля, не требуется использование функции password().Mysqladmin сам заботится о шифровании пароля.

    Mysqlaccess

    Используется для проверки привилегий пользователя для доступа к конкретной базе данных. Общий синтаксис:

    mysqlaccess [host] [user] [db] опции

    Полезная утилита для проверки прав доступа пользователя, если он получает сообщение Access denied, при попытке соединиться с базой данных.
    1   ...   4   5   6   7   8   9   10   11   12


    написать администратору сайта