Spec-Zone .ru
спецификации, руководства, описания, API

6.2.2. Полномочие Систем Грант Тэбльз

Обычно, Вы управляете содержанием таблиц предоставления в mysql база данных косвенно при использовании операторов такой как GRANT и REVOKE устанавливать учетные записи и управлять полномочиями, доступными каждому. См. Раздел 13.7.1, "Операторы Ведения счетов". Обсуждение здесь описывает глубинную структуру таблиц предоставления и как сервер использует их содержание, взаимодействуя с клиентами.

Они mysql таблицы базы данных содержат информацию о предоставлении:

Другие таблицы в mysql база данных не содержит информацию о предоставлении и обсуждается в другом месте:

Каждая таблица предоставления содержит столбцы контекста и столбцы полномочия:

Сервер использует таблицы предоставления следующим способом:

Сервер использует user и db таблицы в mysql база данных и на первых и на вторых этапах управления доступом (см. Раздел 6.2, "MySQL Access Privilege System"). Столбцы в user и db таблицы показывают здесь.

Таблица 6.3. user и db Столбцы таблицы

Имя таблицы user db
Столбцы контекста Host Host
User Db
Password User
Столбцы полномочия Select_priv Select_priv
Insert_priv Insert_priv
Update_priv Update_priv
Delete_priv Delete_priv
Index_priv Index_priv
Alter_priv Alter_priv
Create_priv Create_priv
Drop_priv Drop_priv
Grant_priv Grant_priv
Create_view_priv Create_view_priv
Show_view_priv Show_view_priv
Create_routine_priv Create_routine_priv
Alter_routine_priv Alter_routine_priv
Execute_priv Execute_priv
Trigger_priv Trigger_priv
Event_priv Event_priv
Create_tmp_table_priv Create_tmp_table_priv
Lock_tables_priv Lock_tables_priv
References_priv References_priv
Reload_priv
Shutdown_priv
Process_priv
File_priv
Show_db_priv
Super_priv
Repl_slave_priv
Repl_client_priv
Create_user_priv
Create_tablespace_priv
Столбцы безопасности ssl_type
ssl_cipher
x509_issuer
x509_subject
plugin
authentication_string
password_expired
Столбцы управления ресурсами max_questions
max_updates
max_connections
max_user_connections

mysql.user таблица plugin и authentication_string столбцы хранят информацию плагина аутентификации.

Если plugin столбец для строки учетной записи пуст, сервер использует собственную аутентификацию для попыток подключения для учетной записи: Клиенты должны соответствовать пароль в Password столбец строки учетной записи.

Если строка учетной записи называет плагин в plugin столбец, сервер использует это, чтобы аутентифицировать попытки подключения для учетной записи. Использует ли плагин значение в Password столбец до плагина.

password_expired столбец был добавлен в MySQL 5.6.6, чтобы разрешить DBA истекать пароли учетной записи и требовать, чтобы пользователи сбросили свой пароль. Значение по умолчанию password_expired значение 'N', но может быть установлен в 'Y' с ALTER USER оператор. После того, как пароль учетной записи истекся, все операции, выполняемые учетной записью в последующих соединениях с результатом сервера по ошибке до пользовательских проблем a SET PASSWORD оператор, чтобы установить новый пароль учетной записи. См. Раздел 13.7.1.1,"ALTER USER Синтаксис".

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

Предостережение

В MySQL 5.6.6, ALTER USER также наборы Password столбец к пустой строке, так что не используйте этот оператор до 5.6.7.

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

Таблица 6.4. tables_priv и columns_priv TableColumns

Имя таблицы tables_priv columns_priv
Столбцы контекста Host Host
Db Db
User User
Table_name Table_name
Column_name
Столбцы полномочия Table_priv Column_priv
Column_priv
Другие столбцы Timestamp Timestamp
Grantor

Timestamp и Grantor столбцы устанавливаются в текущую метку времени и CURRENT_USER значение, соответственно. Однако, они неиспользованы и обсуждаются не далее здесь.

Для проверки запросов, которые включают сохраненные подпрограммы, сервер может консультироваться procs_priv таблица, которой показали столбцы в следующей таблице.

Таблица 6.5. procs_priv Столбцы таблицы

Имя таблицы procs_priv
Столбцы контекста Host
Db
User
Routine_name
Routine_type
Столбцы полномочия Proc_priv
Другие столбцы Timestamp
Grantor

Routine_type столбец ENUM столбец со значениями 'FUNCTION' или 'PROCEDURE' чтобы указать на тип подпрограммы, строка обращается к. Этот столбец позволяет полномочиям быть предоставленными отдельно для функции и процедуры с тем же самым именем.

Timestamp и Grantor столбцы в настоящий момент неиспользованы и обсуждаются не далее здесь.

proxies_priv таблица записывает информацию о пользователях прокси. У этого есть эти столбцы:

Столбцы контекста в таблицах предоставления содержат строки. Они объявляются как показано здесь; значение по умолчанию для каждого является пустой строкой.

Таблица 6.6. Табличные Типы Столбца Контекста предоставления

Имя столбца Ввести
Host, Proxied_host CHAR(60)
User, Proxied_user CHAR(16)
Password CHAR(41)
Db CHAR(64)
Table_name CHAR(64)
Column_name CHAR(64)
Routine_name CHAR(64)

В проверяющих доступ целях, сравнениях User, Proxied_user, Password, Db, и Table_name значения являются чувствительными к регистру. Сравнения Host, Proxied_host, Column_name, и Routine_name значения не являются чувствительными к регистру.

В user и db таблицы, каждое полномочие перечисляется в отдельном столбце, который объявляется как ENUM('N','Y') DEFAULT 'N'. Другими словами каждое полномочие может быть отключено или включено с отключаемым значением по умолчанию.

В tables_priv, columns_priv, и procs_priv таблицы, столбцы полномочия объявляются как SET столбцы. Значения в этих столбцах могут содержать любую комбинацию полномочий, которыми управляет таблица. Только те полномочия, перечисленные в значении столбца, включаются.

Таблица 6.7. Значения столбцов Полномочия типа набора

Имя таблицы Имя столбца Возможные Элементы набора
tables_priv Table_priv 'Select', 'Insert', 'Update', 'Delete', 'Create', 'Drop', 'Grant', 'References', 'Index', 'Alter', 'Create View','Show view', 'Trigger'
tables_priv Column_priv 'Select', 'Insert', 'Update', 'References'
columns_priv Column_priv 'Select', 'Insert', 'Update', 'References'
procs_priv Proc_priv 'Execute', 'Alter Routine', 'Grant'

Административные привилегии (такой как RELOAD или SHUTDOWN) определяются только в user таблица. Административные деятельности являются операциями на сервере непосредственно и не специфичны для базы данных, таким образом нет никакой причины перечислить эти полномочия в других таблицах предоставления. Следовательно, чтобы определить, можно ли выполнить административную деятельность, сервер должен консультироваться только user таблица.

FILE полномочие также определяется только в user таблица. Это не административная привилегия как таковая, но Ваша возможность считать или записать, что файлы на узле сервера независимы от базы данных, к которой Вы получаете доступ.

mysqld сервер читает содержание таблиц предоставления в память, когда это запускается. Можно сказать этому перезагружать таблицы, выходя a FLUSH PRIVILEGES оператор или выполнение mysqladmin полномочия сброса или mysqladmin перезагружают команду. Изменения к таблицам предоставления вступают в силу как обозначено в Разделе 6.2.6, "Когда Изменения Полномочия Вступают в силу".

Когда Вы изменяете полномочия учетной записи, это - хорошая идея проверить, что установленные изменения дают полномочия способу, которым Вы хотите. Чтобы проверить полномочия на сделанный отчет, используйте SHOW GRANTS оператор (см. Раздел 13.7.5.22,"SHOW GRANTS Синтаксис"). Например, чтобы определить полномочия, которые предоставляют учетной записи со значениями имени пользователя и имени хоста bob и pc84.example.com, используйте этот оператор:

SHOW GRANTS FOR 'bob'@'pc84.example.com';