��������  ����Linux

mysql-logo.png (3082 bytes)MySQL���IJο��ֲ�

���ߣ����� ([email protected]��      ��ҳ��http://aosp.me


��һ��, ǰһ��, ��һ��, ���һ����Ŀ¼.


6 MySQL ��ȡȨ��ϵͳ

MySQL��һ���Ƚ����DZ�׼�İ�ȫ/Ȩ��ϵͳ�������������Ĺ���ԭ����

6.1 Ȩ��ϵͳ��ʲô

MySQLȨ��ϵͳ����Ҫ������֤ʵ���ӵ�һ̨����������һ���û������Ҹ�����û���һ�����ݿ���select�� insert��update��delete��Ȩ�ޡ�

���ӵĹ��ܰ�����һ���������û��Ͷ���MySQL�ض��Ĺ�������LOAD DATA INFILE������Ȩ������������������

6.2 MySQL �û����Ϳ���

��MySQLʹ���û����Ϳ���ķ�����Unix��Windowsʹ�õķ�ʽ�кܶ಻֮ͬ����

  • MySQLʹ������֤Ŀ�ĵ��û�������Unix�û���(��¼����)��Windows�û����޹ء�ȱʡ�أ������MySQL�ͻ�����ʹ�õ�ǰUnix�û�����ΪMySQL�û�����¼�����������Ϊ�˷��㡣�ͻ�����������-u��--userѡ��ָ��һ����ͬ�����֣�����ζ����������㲻��ʹ��һ�����ݿ����ȫ���������е�MySQL�û������п���κ��˿�����ͼ���κ��������ӷ������������������ָ����û�п�����κ����֣����ǽ��ɹ���
  • MySQL�û����������16���ַ������͵أ�Unix�û�������Ϊ8���ַ���
  • MySQL������Unix����û��ϵ������ʹ�õ�¼��һ̨Unix�����������ʹ������̨�����ϴ�ȡһ�����ݿ�Ŀ���֮��û�б�Ҫ�й�����
  • MySQL���ܿ���ʹ����һ��Unix��¼�ڼ����õIJ�ͬ�㷨����7.4.12 �����һ��������PASSWORD()��ENCRYPT()�������֡�

6.3 ��MySQL����������

������Ҫ��ȡһ��MySQL������ʱ��MySQL�ͻ�����һ��Ҫ����ָ�����Ӳ���������Ҫ���ӵ�����������û�������Ŀ�����磬mysql�ͻ���������������(��ѡ�IJ�������������[������]��֮��)��

shell> mysql [-h host_name][-u user_name][-pyour_pass ]

-h, -u��-pѡ�����һ����ʽ��--host=host_name��--user=user_name��--password=your_pass��ע����-p��--password=�����������Ŀ���֮��û�пո���

ע�⣺����������ָ��һ�������Dz���ȫ�ģ��������ϵͳ�ϵ��κ��û�����ͨ���������������������Ŀ��ps auxww����4.15.4 ѡ���ļ���

����������û�е����Ӳ�����mysqlʹ��ȱʡֵ��

  • ȱʡ��������localhost��
  • ȱʡ�û��������Unix��¼����
  • ���û��-p����û���ṩ���

����, ��һ��Unix�û�joe�����������ǵȼ۵ģ�

shell>mysql -h localhost -u joe 
shell>mysql -h localhost 
shell>mysql -u joe 
shell>mysql

����MySQL�ͻ�������ͬ�����֡�

��Unixϵͳ�ϣ��������һ������ʱ�������ָ��Ҫʹ�õIJ�ͬ��ȱʡֵ�������㲻��ÿ���������һ���ͻ������������������������ǡ�������кܶ෽��������

  • �����������Ŀ¼����.my.cnf���������ļ���[client]С����ָ�����Ӳ������ļ������С�ڿ���ȥ������������
    [client] 
    host=host_name 
    user=user_name 
    password=your_pass
    

    ��4.15.4 ѡ���ļ���

  • ������û�������ָ�����Ӳ�������������MYSQL_HOSTָ����MySQL�û����ֿ���USERָ��(���� Windows)���������MYSQL_PWDָ���������ⲻ��ȫ������һ��) ��

������Ӳ����Զ��ַ�����ָ�������������ϱ�ָ����ֵ�������������ļ��ͻ���������ָ����ֵ�����������ļ�ָ����ֵ�������ڻ�������ָ����ֵ��

6.4 ʹ��Ŀ��ȫ

��һ�ֱ�¶�Ŀɱ������û����ֵķ�ʽָ����Ŀ����Dz��׵��ġ��������пͻ�����ʱ�������ʹ�����з���ָ����Ŀ������ÿ�������ķ���������

  • ʹ��һ������������-pyour_pass��--password=your_pass��ѡ���ܷ��㵫�Dz���ȫ����Ϊ��Ŀ����ϵͳ״̬����(����ps)��ÿɼ��������Ա��������û���������ʾ�����С�(һ��MySQL�ͻ������ǵij�ʼ��˳���ڼ����㸲�������в�����������Ȼ��һ�����ݼ��ʱ���ڲ���ֵ�ɼ��ġ���
  • ʹ��һ��-p��--passwordѡ��(û��ָ��your_passֵ)������������£��ͻ��������������ն˵Ŀ��
    shell>mysql - u  user_name - p
    Enter password: ********
    

    �ͻ���Ӧ��*���ַ�����Ϊ������Ŀ�����ն�ʹ���Թ��߲��ܿ���������Ϊ���������û����ɼ���������������ָ������ȣ�����������Ŀ������ȫ��Ȼ�����������һ������ķ�������Ϊ�㽻��ʽ���г����Ǻ��ʵġ��������Ҫ�ӷǽ���ʽ���е�һ���ű�����һ���ͻ�����û�д��ն����������Ļ��ᡣ

  • ��һ�������ļ��д洢��Ŀ�����磬��������Ŀ¼����.my.cnf���ļ��е�[client]���г���Ŀ��
    [client]
    password=your_pass
    

    ���������.my.cnf������洢����ļ�Ӧ�ò����������ɶ����д�ġ���֤�ļ��Ĵ�ȡģʽ��400��600����4.15.4 ѡ���ļ���

  • �����MYSQL_PWD���������д洢�������������������뵽�Ǽ�����ȫ����Ӧ�ò�ʹ�á�ps��ijЩ�汾������ʾ���н��̵Ļ�����ѡ�������趨MYSQL_PWD����Ŀ�������������Զ��׼��ģ�������û������һ���汾��psϵͳ�ϣ�����û�����������۲쵽���̻����Dz����ǵġ�

��֮���ȫ�ķ������ÿͻ�������ʾ�������һ���ʵ������ġ�.my.cnf���ļ���ָ�����

6.5   MySQL�ṩ��Ȩ��

Ȩ����Ϣ��user��db��host��tables_priv��columns_priv�����洢��mysql���ݿ���(������Ϊmysql�����ݿ���)����MySQL����ʱ����6.9 Ȩ���޸ĺ�ʱ��Ч��˵�����ʱ��������������Щ���ݿ�����ݡ�

���ֲ����õ��漰��MySQL�ṩ��Ȩ��������ʾ���±�����������Ȩ����ÿ��Ȩ�޵ı������ƺ�ÿ��Ȩ���йص������ģ�

Ȩ�� �� ������
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 �ڷ������ϵ��ļ���ȡ

select��insert��update��deleteȨ����������һ�����ݿ����еı���ʵʩ������

SELECT���ֻ��������������һ�����м������Dz���ҪselectȨ�ޣ������ִ��ij��SELECT��䣬����û���κε��������ϵ����ݿ���Ĵ�ȡ�κζ��������ɡ����磬���ʹ��mysql�ͻ���Ϊһ���򵥵ļ�������

mysql> SELECT 1+1;
mysql> SELECT PI()*2;

indexȨ�������㴴��������(ɾ��)������

alterȨ��������ʹ��ALTER TABLE��

create��dropȨ�������㴴���µ����ݿ�ͱ���������(ɾ��)�ִ�����ݿ�ͱ���

ע�⣺����㽫mysql���ݿ��dropȨ������һ���û������û��������洢��MySQL��ȡȨ�޵����ݿ⣡

grantȨ������������Լ�ӵ�е���ЩȨ���ڸ��������û���

fileȨ�޸�������LOAD DATA INFILE��SELECT ... INTO OUTFILE������д�������ϵ��ļ����κα��������Ȩ�޵��û����ܶ���дMySQL�������ܶ���д���κ��ļ���

�����Ȩ�����ڹ����Բ�������ʹ��mysqladmin����ʵʩ���±���ʾmysqladmin֧��ÿ��������Ȩ��������ִ�е����

�Ż� Ȩ��ӵ��������ִ�е�����
reload reload, refresh, flush-privileges, flush-hosts, flush-logs, flush-tables
shutdown shutdown
precess processlist, kill

reload������߷������ٶ�����Ȩ����refresh������ϴ���б����򿪺͹رռ�¼�ļ���flush-privileges��reload��һ��ͬ��ʣ�����flush-*����ִ������refresh�Ĺ��ܣ����Ƿ�Χ�����ޣ�������ijЩ����¿��ܸ����á����磬�����ֻ������ϴ��¼�ļ���flush-logs��refresh�Ǹ��õ�ѡ��

shutdown����ص���������

processlist������ʾ�ڷ�������ִ�е��̵߳���Ϣ��kill����ɱ���������̡߳�����������ʾ��ɱ�����Լ����̣߳���������ҪprocessȨ������ʾ��ɱ�������û��������̡߳�

�ܵ�˵����ֻ����Ȩ�޸���Ҫ���ǵ���Щ�û���һ�������⣬������Ӧ��������ij��Ȩ��ʱ�����ض��ľ��棺

  • grantȨ�������û��������ǵ�Ȩ�޸������û���2���в�ͬ��Ȩ�޲���grantȨ�޵��û����Ժϲ�Ȩ�ޡ�
  • alterȨ�޿�������ͨ���������������Ʒ�Ȩ��ϵͳ��
  • fileȨ�޿��Ա������ڷ������϶�ȡ�κ�����ɶ�(world-readable�����κ��˿ɶ�)���ļ���һ�����ݿ����Ȼ������������SELECT����ȡ��
  • shutdownȨ��ͨ����ֹ���������Ա�������ȫ�ܾ�Ϊ�����û�����, ��
  • precessȨ���ܱ������쿴��ǰִ�еIJ�ѯ����ͨ�ı��������趨��ı�����ѯ��
  • ��mysql���ݿ��ϵ�Ȩ���ܱ������ı�����������ȡȨ����Ϣ����������ܴ洢������һ��������û����ܼ򵥵ض�ȡ���ǡ�Ȼ�������㹻��Ȩ�ޣ�ͬһ���û����ò�ͬ��һ������һ�������

��һЩ�����㲻����MySQLȨ��ϵͳ������

  • �㲻�����Ե�ָ��һ�������û�Ӧ�ñ��ܾ���ȡ�������㲻�����Ե�ƥ��һ���û�����Ȼ��ܾ����ӡ�
  • �㲻��ָ��һ���û���Ȩ������������һ�����ݿ��еı���Ҳ���ܴ������������ݿⱾ����

6.6 Ȩ��ϵͳ����ԭ��

MySQLȨ��ϵͳ��֤���е��û������ϸ�������Ǽٶ��������������顣��������һ��MySQL������ʱ�� �����������������ӵ���������ָ�����û�����������ϵͳ����������ݺ�������ʲô������Ȩ�ޡ�

MySQL���϶������п���������������û����֣�����Ϊ�к�С��ԭ��ٶ�һ���������û���������������ͬһ���ˡ����磬�û���whitehouse.gov���ӵ�bill���غʹ�mosoft.com����bill��ͬһ���ˡ� MySQLͨ�������������ڲ�ͬ��������������ͬ�������û���������������ԶԴ�whitehouse.gov��������billһ��Ȩ�޼�����Ϊ��microsoft.com����������һ����ͬ��Ȩ�޼���

MySQL��ȡ���ư���2���׶Σ�

  • �׶�1��������������Ƿ��������ӡ�
  • �׶�2���ٶ��������ӣ�����������㷢����ÿ�����󡣿����Ƿ����㹻��Ȩ��ʵʩ�������磬���������ݿ���һ������ѡ(select)�л�����ݿ�����һ������������ȷ����Ա���selectȨ�޻�����ݿ���dropȨ�ޡ�

�������ڴ�ȡ���Ƶ������׶�ʹ����mysql�����ݿ��е�user��db��host��������Щ��Ȩ�����ֶ����£�

������ user db host
��Χ�ֶ� Host Host Host
User Db Db
Password User
Ȩ���ֶ� Select_priv Select_priv Select_priv
Insert_priv Insert_priv Insert_priv
Update_priv Update_priv Update_priv
Delete_priv Delete_priv Delete_priv
Index_priv Index_priv Index_priv
Alter_priv Alter_priv Alter_priv
Create_priv Create_priv Create_priv
Drop_priv Drop_priv Drop_priv
Grant_priv Grant_priv Grant_priv
Reload_priv
Shutdown_priv
Process_priv
File_priv

�Դ�ȡ���Ƶĵڶ��׶�(����֤ʵ)����������漰������������������ο�tables_priv��columns_priv������Щ�����ֶ����£�

������ 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

ÿ����Ȩ��������Χ�ֶκ�Ȩ���ֶΡ�

��Χ�ֶξ�������ÿ����Ŀ�ķ�Χ��������Ŀ���õ������ġ�����, һ��user����Ŀ��Host��UserֵΪ'thomas.loc.gov'��'bob'��������֤ʵ��������thomas.loc.gov��bob�Է����������ӡ�ͬ����һ��db����Ŀ��Host��User��Db�ֶε�ֵ��'thomas.loc.gov'��'bob'��'reports'������bob����������thomas.loc.gov��ȡreports���ݿ��ʱ�� tables_priv��columns_priv��������Χ�ֶΣ�ָ��ÿ����Ŀ���õı�������е���ϡ�

���ڼ���ȡ����;���Ƚ�Hostֵ�Ǻ��Դ�Сд�ġ�User��Password��Db��Table_nameֵ�����ִ�Сд�ġ�Column_nameֵ��MySQL3.22.12���Ժ�汾�Ǻ��Դ�Сд�ġ�

Ȩ���ֶ�ָ����һ������Ŀ�����Ȩ�ޣ�������ʵʩʲô��������������ϸ��ֵ���Ȩ������Ϣ�γ�һ���û�Ȩ�޵�����������Ϊ��ʹ�õĹ�����6.8 ��ȡ����, �׶�2������֤ʵ������

��Χ�ֶ����ַ���������������ÿ���ֶε�ȱʡֵ�ǿ��ַ�����

�ֶ��� ����
Host CHAR(60)
User CHAR(16)
Password CHAR(16)
Db CHAR(64) (tables_priv��columns_priv��ΪCHAR(60)��

��user��db��host���У�����Ȩ���ֶα�����ΪENUM('N','Y')--ÿһ��������ֵ'N'��'Y'������ȱʡֵ��'N'.

��tables_priv��columns_priv���У�Ȩ���ֶα�����ΪSET�ֶΣ�

���� �ֶ��� ���ܵļ��ϳ�Ա
tables_priv Table_priv 'Select', 'Insert', 'Update', 'Delete', 'Create', 'Drop', 'Grant', 'References', 'Index', 'Alter'
tables_priv Column_priv 'Select', 'Insert', 'Update', 'References'
columns_priv Column_priv 'Select', 'Insert', 'Update', 'References'

�򵥵�˵��������ʹ����������Ȩ����

  • user����Χ�ֶξ����Ƿ�������ܾ����������ӡ��������������ӣ�Ȩ���ֶ�ָ���û���ȫ��(�����û�)Ȩ�ޡ�
  • db��host��һ��ʹ�ã�
    • db����Χ�ֶξ����û��ܴ��ĸ�������ȡ�ĸ����ݿ⡣Ȩ���ֶξ��������ĸ�������
    • ������Ҫһ��������db��ĿӦ������������ʱ��host����Ϊdb������չ��ʹ�á����磬�������Ҫһ���û���������������������ʹ��һ�����ݿ⣬���û���db����Host��Ŀ��Ϊ��ֵ��Ȼ����Щ������ÿһ������host�������������ϸ������6.8 ��ȡ����, �׶�2������֤ʵ��
  • tables_priv��columns_priv��������db�������Ǹ����£������ڱ����м�Ӧ�ö��������ݿ⼶��

ע�����Ȩ��(reload, shutdown, �ȵ�)����user���б�ָ����������Ϊ�����Բ����Ƿ����������IJ������Ҳ����ض����ݿ⣬���û��������������Ȩ�����г�������Ȩ�ޡ���ʵ�ϣ�ֻ��Ҫ���user�����������Ƿ�ִ��һ������������

fileȨ��Ҳ����user����ָ���������ǹ�����Ȩ�ޣ��������л�ڷ����������ϵ��ļ��ĵ����������������ڴ�ȡ�����ݿ⡣

��mysqld����������ʱ����ȡһ����Ȩ�����ݡ�����Ȩ���ĸ�����Ч��6.9 Ȩ�޸��ĺ�ʱ��Ч������

�����޸���Ȩ��������ʱ��ȷ���㰴����Ҫ�ķ�ʽ����Ȩ��������һ�������⡣Ϊ����������⣬��6.13 ����ȡ�ܾ������������ԭ�������ڰ�ȫ�����ϵ��Ҹ棬��6.14 ��ô��ʹMySQL��ȫ�Կ����ܸ�����

һ�����õ���Ϲ�����mysqlaccess�ű�����Carlier Yves �ṩ��MySQL�ַ���ʹ��--helpѡ�����mysqlaccess����������������ע�⣺mysqlaccess����user��db��host��������ȡ�������������м�Ȩ�ޡ�

6.7 ��ȡ����, �׶�1������֤ʵ

������ͼ����һ��MySQL������ʱ������������������ݺ����Ƿ���ͨ����Ӧ��ȷ�Ŀ�����֤���������ܻ�ܾ����ӡ�������ǣ���������ȫ�߽���Ĵ�ȡ�����򣬷������������ӣ�Ȼ�����׶�2���ҵȴ�����

������ݻ���2����Ϣ��

  • ����Ǹ���������
  • ���MySQL�û���

���ݼ��ʹ��3��user��(Host, User��Password)��Χ�ֶ�ִ�С�������ֻ����һ��user����Ŀƥ��������������û����������ṩ����ȷ�Ŀ���ʱ�Ž������ӡ�

��user����Χ�ֶο������±�ָ����

  • һ��Hostֵ��������������һ��IP���֣���'localhost'ָ������������
  • �������Host�ֶ���ʹ��ͨ����ַ���%������_����
  • һ��Hostֵ'%'ƥ���κ���������һ���հ�Hostֵ�ȼ���'%'��ע����Щֵƥ���ܴ���һ�����ӵ���ķ��������κ�������
  • ͨ����ַ���User�ֶ��в���������������ָ���հ׵�ֵ����ƥ���κ����֡����user��ƥ�䵽�������ӵ���Ŀ��һ���հ׵��û������û�����Ϊ�������û�(û�����ֵ��û�)�����ǿͻ�ʵ��ָ�������֡�����ζ��һ���հ׵��û����������������ڼ�Ľ�һ���Ĵ�ȡ���(�����ڽ׶�2�ڼ�)��
  • Password�ֶο����ǿհ׵ġ��ⲻ��ζ��ƥ���κο������ζ���û����벻ָ��һ������������ӡ�

�ǿհ�Passwordֵ�������ܵĿ�� MySQL�����κ��˿��Կ��Ĵ��ı���ʽ�洢����෴��������ͼ���ӵ�һ���û��ṩ�Ŀ������(ʹ��PASSWORD()����)��������洢��user���е��Ѿ����ܵİ汾�Ƚϡ��������ƥ�䣬��������ȷ�ġ�

�����������ʾ������user����Host��User��Ŀ��ֵ��������Ӧ���ڵ��������ӣ�

Host ֵ User ֵ ����Ŀƥ�������
'thomas.loc.gov' 'fred' fred, ��thomas.loc.gov ����
'thomas.loc.gov' '' �κ��û�, ��thomas.loc.gov����
'%' 'fred' fred, �����������
'%' '' �κ��û�, ���κ���������
'%.loc.gov' 'fred' fred, ����loc.gov������������
'x.y.%' 'fred' fred, ��x.y.net��x.y.com,x.y.edu�����ӡ�����������ã�
'144.155.166.177' 'fred' fred, ����144.155.166.177 IP ��ַ����������
'144.155.166.%' 'fred' fred, ��144.155.166 C�����������������

��Ȼ������Host�ֶ�ʹ��IPͨ���ֵ(���磬'144.155.166.%'ƥ����һ�������ϵ�ÿ̨����)���п���ij�˿�����ͼ̽������������ͨ������һ̨����Ϊ144.155.166.somewhere.com��Ϊ����ֹ��������ͼ��MySQL������ƥ�������ֺ�һ������ʼ�����������������������һ������Ϊ����1.2.foo.com���������������־�����ƥ����Ȩ����Host�С�ֻ��һ��IP������ƥ��IPͨ���ֵ��

һ�����������ӿ��Ա���user���еij���һ����Ŀƥ�䡣���磬һ����fred��thomas.loc.gov������ƥ������Ŀ�����������������һ��ƥ�䣬��������ôѡ��ʹ���ĸ���Ŀ�أ�������������ʱ����user����ͨ�����������������⣬Ȼ��һ���û���ͼ����ʱ���������˳�������Ŀ����һ��ƥ�����Ŀ��ʹ�á�

user�����������£��ٶ�user����������������

+-----------+----------+-
| Host      | User     | ...
+-----------+----------+-
| %         | root     | ...
| %         | jeffrey  | ...
| localhost | root     | ...
| localhost |          | ...
+-----------+----------+-

���������ڱ��ж�ȡʱ���������ض���HostֵΪ�ȵĴ�������('%'��Host������ζ�š��κ���������������ض���)������ͬHostֵ����Ŀ�����ض���UserֵΪ�ȵĴ�������(һ���հ�Userֵ��ζ�š��κ��û�����������ض���)�����������user����������������

+-----------+----------+-
| Host      | User     | ...
+-----------+----------+-
| localhost | root     | ...
| localhost |          | ...
| %         | jeffrey  | ...
| %         | root     | ...
+-----------+----------+-

��һ�����ӱ�����ʱ������������������Ŀ��ʹ���ҵ��ĵ�һ��ƥ�䡣������jeffrey��localhost��һ�����ӣ���Host�е�'localhost'��Ŀ����ƥ�䡣��Щ�пհ��û�������Ŀƥ�����ӵ����������û�������'%'/'jeffrey'��ĿҲ��ƥ�䣬�����������ڱ��еĵ�һƥ�䡣��

��������һ�����ӡ��ٶ�user���ӿ�������������

+----------------+----------+-
| Host           | User     | ...
+----------------+----------+-
| %              | jeffrey  | ...
| thomas.loc.gov |          | ...
+----------------+----------+-

�����ı���������������

+----------------+----------+-
| Host           | User     | ...
+----------------+----------+-
| thomas.loc.gov |          | ...
| %              | jeffrey  | ...
+----------------+----------+-

һ����jeffrey��thomas.loc.gov�����ӱ���һ����Ŀƥ�䣬��һ����jeffrey��whitehouse.gov�����ӱ��ڶ���ƥ�䡣

�ձ���������Ϊ����һ���������û���������������ͼ������Ѱ��ƥ��ʱ����ȷ�����Ǹ��û���������Ŀ�����ȱ�ʹ�á������Բ�����ʵ����ǰ������˵������㣬������һ����jeffrey��thomas.loc.gov������û������'jeffrey'��ΪUser�ֶ�ֵ����Ŀƥ�䣬������û���û�������Ŀƥ�䣡

������з��������ӵ����⣬��ӡ��user�������ֹ�������������һ��ƥ�����Ķ����С�

6.8 ��ȡ���ƣ��׶�2������֤ʵ

һ���㽨����һ�����ӣ�����������׶�2�����ڴ������Ͻ�����ÿ�����󣬷�����������Ƿ����㹻��Ȩ����ִ��������������ϣ��ִ�еIJ������͡�����������Ȩ���е�Ȩ���ֶη������õĵط�����ЩȨ�޿�������user��db��host��tables_priv��columns_priv�����κ�һ������Ȩ����GRANT��REVOKE�����������7.26 GRANT��REVOKE �䷨��������Է����ο�6.6 Ȩ��ϵͳ�����������а��������г�����ÿ��Ȩ�ޱ��г��ֵ��ֶΡ���

user����һ��ȫ�ֻ��������踳�����Ȩ�ޣ���Ȩ�޲��ܵ�ǰ�����ݿ���ʲô�����á����磬���user��������deleteȨ�ޣ� �����ɾ���ڷ����������ϴ��κ����ݿ�ɾ���У����仰˵��user��Ȩ���dz����û�Ȩ�ޡ�ֻ��user����Ȩ�����賬���û�������������ݿ����������ǵġ��������û�����Ӧ�ð���user���е�Ȩ�����'N'���ҽ���һ���ض����ݿ�Ļ�������Ȩ�� ʹ��db��host����

db��host���������ݿ��ض���Ȩ�ޡ��ڷ�Χ�ֶε�ֵ�������±�ָ����

  • ͨ����ַ���%������_���ɱ�������������Host��Db�ֶΡ�
  • ��db����'%'Hostֵ��ζ�š��κ�����������db����һ���հ�Hostֵ��ζ�š��Խ�һ������Ϣ��ѯhost������
  • ��host����һ��'%'��հ�Hostֵ��ζ�š��κ���������
  • ���������е�һ��'%'��հ�Dbֵ��ζ�š��κ����ݿ⡱��
  • ���������е�һ���հ�Userֵƥ�������û���

db��host���ڷ���������ʱ����ȡ������(ͬʱ����user��)��db����Host��Db��User��Χ�ֶ������򣬲���host����Host��Db��Χ�ֶ������򡣶���user�����������ȷ������ض���ֵȻ�������ض���ֵ�����ҵ�������Ѱ��ƥ������Ŀʱ����ʹ�����ҵ��ĵ�һ��ƥ�䡣

tables_priv��columns_priv������������ض���Ȩ�ޡ��ڷ�Χ�ֶε�ֵ�������±�ָ����

  • ͨ�����%������_��������ʹ������������Host�ֶΡ�
  • ���������е�һ��'%'��հ�Host��ζ�š��κ���������
  • ���������е�Db��Table_name��Column_name�ֶβ��ܰ���ͨ�����հס�

tables_priv��columns_priv����Host��Db��User�ֶ��ϱ�������������db�������򣬾�����Ϊֻ��Host�ֶο��԰���ͨ�������������򵥡�

����֤ʵ�������������������������Ϥ��ȡ����Դ���룬���ע�⵽������������ڴ���ʹ�õ��㷨���в�ͬ�������ȼ��ڴ���ʵ�����Ķ�������ֻ�Dz�ͬ��ʹ���͸��򵥡���

�Թ�������(shutdown��reload�ȵ�)�������������user����Ŀ����Ϊ����Ψһָ������Ȩ�޵ı��������Ŀ��������IJ�������ȡ����Ȩ�ˣ�����ܾ������磬�������Ҫִ��mysqladmin shutdown���������user����Ŀû��Ϊ������shutdownȨ�ޣ���ȡ�������ü��db��host���ͱ��ܾ�������Ϊ���Dz�����Shutdown_priv���У�û���������ı�Ҫ����

�����ݿ��йص�����(insert��update�ȵ�)������������ͨ������user����Ŀ������û���ȫ��(�����û�)Ȩ�ޡ������Ŀ��������IJ�������ȡ����Ȩ�������user����ȫ��Ȩ�޲�����������ͨ�����db��host��ȷ���ض����û����ݿ�Ȩ�ޣ�

  1. ��������db����Host��Db��User�ֶ��ϲ���һ��ƥ�䡣 Host��User��Ӧ�����û�����������MySQL�û�����Db�ֶζ�Ӧ�û���Ҫ��ȡ�����ݿ⡣���û��Host��User����Ŀ����ȡ���ܾ���
  2. ���db���е���Ŀ��һ��ƥ���������Host�ֶβ��ǿհ׵ģ�����Ŀ�����û������ݿ��ض���Ȩ�ޡ�
  3. ���ƥ���db������Ŀ��Host�ֶ��ǿհ׵ģ�����ʾhost���о�����Ӧ�ñ�������ȡ���ݿ������������������£���host��������һ�������Է���Host��Db�ֶ��ϵ�ƥ�䡣���û��host����Ŀƥ�䣬��ȡ���ܾ��������ƥ�䣬�û����ݿ��ض���Ȩ������db��host������Ŀ��Ȩ�ޣ�����������Ŀ����'Y'��Ȩ�޵Ľ���(������������)���㡣�����������������db����Ŀ�е�һ��Ȩ�ޣ�Ȼ����host����Ŀ��һ������һ������Ϊ��������ѡ����������ǡ���

��ȷ������db��host����Ŀ��������ݿ��ض���Ȩ�޺󣬷����������Ǽӵ���user�������ȫ��Ȩ���С���������������IJ�������ȡ����Ȩ�����򣬷����������tables_priv��columns_priv���е��û��ı�����Ȩ�޲������Ǽӵ��û�Ȩ���С����ڴ˽��������ܾ���ȡ��

�ò��������ʾ��ǰ�����һ���û�Ȩ����μ�����������������ܽ᣺

global privileges
OR (database privileges AND host privileges)
OR table privileges
OR column privileges

�����ܲ����ԣ�Ϊʲô�أ����ȫ��user��Ŀ��Ȩ��������ֶ�����IJ����������������Ժ����ЩȨ�޼ӵ����ݿ⡢�����е��ض�Ȩ�ޡ�ԭ����һ���������Ҫ�󳬹�һ�����͵�Ȩ�ޡ����磬�����ִ��һ��INSERT ... SELECT��䣬��Ͷ�Ҫinsert��selectȨ�ޡ����Ȩ�ޱ�������Ա�user����Ŀ����һ��Ȩ�޶�db����Ŀ������һ��������������£����б�Ҫ��Ȩ��ִ�����󣬵��Ƿ����������Լ�����������������������Ŀ�����Ȩ�ޱ������������

host���ܱ�����ά��һ������ȫ���������б�����TcX��host������һ���ڱ��ص����������еĻ����ı�����Щ���������е�Ȩ�ޡ�

��Ҳ����ʹ��host��ָ������ȫ���������ٶ�����һ̨����public.your.domain����λ���㲻��Ϊ�ǰ�ȫ��һ��������������������е�host����Ŀ������������̨����������������������Ĵ�ȡ��

+--------------------+----+-
| Host               | Db | ...
+--------------------+----+-
| public.your.domain | %  | ... (����Ȩ����Ϊ 'N')
| %.your.domain      | %  | ... (����Ȩ����Ϊ 'Y')
+--------------------+----+-

��Ȼ����Ӧ�����Dz���������Ȩ���е���Ŀ(���磬ʹ��mysqlaccess)����ȷ����Ĵ�ȡȨ��ʵ����������Ϊ�ķ�ʽ�����á�

6.9 Ȩ�޸��ĺ�ʱ��Ч

��mysqld����ʱ�����е���Ȩ�����ݱ������洢�����Ҵ��ǵ���Ч��

��GRANT��REVOKE��SET PASSWORD����Ȩ��ʩ�е��޸Ļ�������������ע�⵽��

������ֹ����޸���Ȩ��(ʹ��INSERT��UPDATE�ȵ�)����Ӧ��ִ��һ��FLUSH PRIVILEGES��������mysqladmin flush-privileges���߷�������װ����Ȩ����������ĸı佫����Ч��������������������

��������ע�⵽��Ȩ�����ı���ʱ���ִ�Ŀͻ�����������Ӱ�죺

  • ������Ȩ���ڿͻ�����һ������ʱ��Ч��
  • ���ݿ�Ȩ�޸ı�����һ��USE db_name������Ч��

ȫ��Ȩ�޵ĸı�Ϳ���ı�����һ�οͻ�����ʱ��Ч��

6.10 ������ʼ��MySQLȨ��

�ڰ�װMySQL����ͨ������scripts/mysql_install_db��װ��ʼ�Ĵ�ȡȨ�ޡ���4.7.1 ���ٰ�װ������ scripts/mysql_install_db�ű�����mysqld��������Ȼ���ʼ����Ȩ������������Ȩ�޼��ϣ�

  • MySQL root�û���Ϊ�����κ������һ�������û������졣���ӱ����ɱ�������������ע����������root�����ǿյģ�����κ�������root��û��һ�������������Ӳ��ұ���������Ȩ�ޡ�
  • һ�������û������죬���ɶ���һ��'test'����'test_'��ʼ�����ֵ����ݿ����κ�ʱ�����飬���ӱ����ɱ�����������������ζ���κα����û������Ӳ�����Ϊ�����û���
  • ����Ȩ�ޱ��ܾ������磬һ���û�����ʹ��mysqladmin shutdown��mysqladmin processlist��

ע�⣺��Win32�ij�ʼȨ���Dz�ͬ�ġ���4.12.4 ��Win32������MySQL��

��Ȼ��İ�װ��ʼʱ�㿪���ţ�������Ӧ����������֮һ��ΪMySQL root�û�ָ��һ����������������(ע�⣬��ʹ��PASSWORD()����ָ������)��

shell> mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD('new_password')
           WHERE user='root';
mysql> FLUSH PRIVILEGES;

��MySQL 3.22�����ϰ汾�У������ʹ��SET PASSWORD��䣺

shell> mysql -u root mysql
mysql> SET PASSWORD FOR root=PASSWORD('new_password');

���ÿ������һ�ַ�����ʹ��mysqladmin���

shell> mysqladmin -u root password new_password 

ע�⣺�����ʹ�õ�һ�ַ�����user����ֱ�Ӹ��¿���������߷������ٴζ�����Ȩ��(��FLUSH PRIVILEGES)����Ϊ����ı佫����ע�⵽��

һ��root������ã��˺�����Ϊroot�����������ʱ������빩Ӧ�Ǹ����

�����ϣ����root����Ϊ�հ��Ա㵱��ʩ�и��ӵİ�װʱ���㲻��Ҫָ��������ԣ����DZ�֤���κ���ʵ������������ʹ����İ�װ֮ǰ����������

����scripts/mysql_install_db�ű���������ΰ�װȱʡ��Ȩ�ޡ����������Ϊһ���о�������������û��Ļ�����

�������Ҫ��ʼ��Ȩ�޲�ͬ��������������Щ����������mysql_install_db֮ǰ��������޸�����

Ϊ����ȫ�ؽ�Ȩ�ޱ���ɾ���ڰ���mysql���ݿ��Ŀ¼��������*.frm��,��*.MYI������*.MYD���ļ��������������ݿ�Ŀ¼��������Ϊ��mysql����Ŀ¼����������mysqld --helpʱ�������г���)Ȼ������mysql_install_db�ű������������ȱ༭��ӵ������Ҫ��Ȩ��֮��

ע�������ڱ�MySQL 3.22.10�ɵİ汾���㲻Ӧ��ɾ����*.frm���ļ��������żȻ���ˣ���Ӧ��������mysql_install_db֮ǰ���MySQL�ַ��п������ǡ�

6.11 ��MySQL�������û�Ȩ��

�������2����ͬ�ķ��������û���ͨ��ʹ��GRANT����ͨ��ֱ�Ӳ���MySQL��Ȩ�����ȽϺõķ�����ʹ��GRANT��䣬��Ϊ�����Ǹ��������Һ��������Щ��

�����������ʾ�����ʹ��mysql�ͻ���װ���û�����Щ���Ӽٶ�Ȩ�޸�����ǰ���½�������ȱʡ����װ������ζ��Ϊ�˸ı䣬�������mysqld��������ͬһ̨�����ϣ��������ΪMySQL root�û����ӣ�����root�û������mysql���ݿ���insertȨ�޺�reload����Ȩ�ޡ����⣬�����ı���root�û������������µ�mysql����ָ������

�����ͨ������GRANT����������û���

shell> mysql --user=root mysql
mysql> GRANT ALL PRIVILEGES ON *.* TO monty@localhost
           IDENTIFIED BY 'something' WITH GRANT OPTION;
mysql> GRANT ALL PRIVILEGES ON *.* TO monty@"%"
           IDENTIFIED BY 'something' WITH GRANT OPTION;
mysql> GRANT RELOAD,PROCESS ON *.* TO admin@localhost;
mysql> GRANT USAGE ON *.* TO dummy@localhost;

��ЩGRANT��䰲װ3�����û���

monty
���Դ��κεط����ӷ�������һ����ȫ�ij����û������DZ���ʹ��һ������('something'�������ע�⣬���DZ����monty@localhost��monty@"%"����GRANT��䡣�����������localhost��Ŀ����localhost�������û���Ŀ�����Ǵӱ����������ӽ�ʱ��mysql_install_db��������Ŀ�����ȿ��ǣ���Ϊ���и��ض���Host�ֶ�ֵ��������user������˳�򿴸��絽����
admin
���Դ�localhostû��һ������������Ӳ��ұ�����reload��process����Ȩ�޵��û����������û�ִ��mysqladmin reload��mysqladmin refresh��mysqladmin flush-*�������mysqladmin processlist��û���������ݿ��йص�Ȩ�ޡ����������Ժ�ͨ��������һ��GRANT�����Ȩ��
dummy
���Բ���һ���������ӵ�һ���û�������ֻ�ܴӱ���������ȫ��Ȩ�ޱ�����Ϊ'N'--USAGEȨ����������������Ȩ�޾Ϳ�����һ���û������ٶ��㽫���Ժ��������ݿ���ص�Ȩ�ޡ�

��Ҳ����ֱ��ͨ������INSERT�������ͬ�����û���ȡ��Ϣ��Ȼ����߷������ٴ�װ����Ȩ����

shell> mysql --user=root mysql
mysql> INSERT INTO user VALUES('localhost','monty',PASSWORD('something'),
                'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y')
mysql> INSERT INTO user VALUES('%','monty',PASSWORD('something'),
                'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y')
mysql> INSERT INTO user SET Host='localhost',User='admin',
                 Reload_priv='Y', Process_priv='Y';
mysql> INSERT INTO user (Host,User,Password)
                        VALUES('localhost','dummy','');
mysql> FLUSH PRIVILEGES;

ȡ�������MySQL�汾��������������ܱ���ʹ��һ����ͬ��Ŀ'Y'ֵ(��3.22.11��ǰ�İ汾�и��ٵ�Ȩ����)����admin�û���ֻ����3.22.11��ʼ�İ汾���еĸ��ӿɶ���INSERT������﷨��

ע�⣬Ϊ������һ�������û�����ֻ�贴��һ��user����Ŀ����Ȩ���ֶ���Ϊ'Y'������Ҫdb��host������Ŀ��

��user���е�Ȩ���в��������һ��INSERT�����ȷ���õ�(��dummy�û�)�������Щ�б�����ȱʡֵ'N'������GRANT USAGE����ͬ�������顣

������������һ���û�custom�����ܴ�����localhost��server.domain��whitehouse.gov���ӡ���ֻ��Ҫ��localhost��ȡbankaccount���ݿ⣬��whitehouse.gov��ȡexpenses���ݿ�ʹ�����3̨������ȡcustomer���ݿ⡣����Ҫ������3̨������ʹ�ÿ���stupid��

Ϊ��ʹ��GRANT������ø��û���Ȩ�ޣ�������Щ���

shell> mysql --user=root mysql
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
           ON bankaccount.*
           TO custom@localhost
           IDENTIFIED BY 'stupid';
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
           ON expenses.*
           TO [email protected]
           IDENTIFIED BY 'stupid';
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
           ON customer.*
           TO custom@'%'
           IDENTIFIED BY 'stupid';

ͨ��ֱ���޸���Ȩ�������û�Ȩ�ޣ�������Щ����(ע�⣬�ڽ���ʱFLUSH PRIVILEGES)��

shell> mysql --user=root mysql
mysql> INSERT INTO user (Host,User,Password)
       VALUES('localhost','custom',PASSWORD('stupid'));
mysql> INSERT INTO user (Host,User,Password)
       VALUES('server.domain','custom',PASSWORD('stupid'));
mysql> INSERT INTO user (Host,User,Password)
       VALUES('whitehouse.gov','custom',PASSWORD('stupid'));
mysql> INSERT INTO db
       (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,
        Create_priv,Drop_priv)
       VALUES
       ('localhost','bankaccount','custom','Y','Y','Y','Y','Y','Y');
mysql> INSERT INTO db
       (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,
        Create_priv,Drop_priv)
       VALUES
       ('whitehouse.gov','expenses','custom','Y','Y','Y','Y','Y','Y');
mysql> INSERT INTO db
       (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,
        Create_priv,Drop_priv)
       VALUES('%','customer','custom','Y','Y','Y','Y','Y','Y');
mysql> FLUSH PRIVILEGES;

ͷ3��INSERT�������user����Ŀ�������û�custom�ø�������Ӳ�ͬ�������������ӣ�����û�������κ�����(����Ȩ�ޱ�����Ϊȱʡֵ'N')����3��INSERT�������db����Ŀ������custom��bankaccount��expenses��customer���ݿ�Ȩ�ޣ�����ֻ���ڴ���ȷ��������ȡʱ��ͨ��������Ȩ��ֱ�ӱ��޸�ʱ�����������뱻��֪�ٴ�װ������(��FLUSH PRIVILEGES)�Ա�ʹȨ���޸���Ч��

�������Ҫ���ض����û���һ�����������ϵ��κλ����ϴ�ȡȨ�ޣ�����Է���һ�����µ�GRANT��䣺

mysql> GRANT ...
           ON *.*
           TO myusername@"%.mydomainname.com"
           IDENTIFIED BY 'mypassword';

Ϊ��ͨ��ֱ���޸���Ȩ����ͬ�������飬��������

mysql> INSERT INTO user VALUES ('%.mydomainname.com', 'myusername',
           PASSWORD('mypassword'),...);
mysql> FLUSH PRIVILEGES;

��Ҳ����ʹ��xmysqladmin��mysql_webadmin����xmysql����Ȩ���в��롢�ı�͸���ֵ���������MySQL��ContribĿ¼�ҵ���Щʵ�ó���

6.12 �������ÿ���

��ǰ��С�ڵ�������˵����һ����Ҫ��ԭ�򣺵���ʹ��INSERT��UPDATE���洢һ���ǿյĿ���ʱ�������ʹ��PASSWORD()������������������Ϊ��user�����Լ�����ʽ�洢�����������Ϊ���ı�����������������ʵ���������������ͼ���ÿ��

shell> mysql -u root mysql 
mysql> INSERT INTO user (Host,User,Password) VALUES('%','jeffrey','biscuit'); 
mysql> FLUSH PRIVILEGES

����Ǵ��ı�ֵ'biscuit'��Ϊ����洢��user���С����û�jeffrey��ͼ������������ӷ�����ʱ��mysql�ͻ���PASSWORD()���������ҽ�����͸����������������Ƚ���user���е�ֵ(���Ǵ��ı�ֵ'biscuit')�ͼ��ܵĿ���(������ 'biscuit')���Ƚ�ʧ�ܲ��ҷ������ܾ����ӣ�

shell> mysql -u jeffrey -pbiscuit test
Access denied

��Ϊ�����DZ�����user��ʱ��������뱻���ܣ��෴��INSERT���Ӧ����������ָ����

mysql> INSERT INTO user (Host,User,Password)
       VALUES('%','jeffrey',PASSWORD('biscuit'));

����ʹ��SET PASSWORD���ʱ����Ҳ����ʹ��PASSWORD()������

mysql> SET PASSWORD FOR jeffrey@"%" = PASSWORD('biscuit'); 

�����ʹ��GRANT ... IDENTIFIED BY����mysqladmin password�������ÿ��PASSWORD()�����Dz���Ҫ�ġ����Ƕ����ǵ�Ϊ����ܿ���������������ָ��һ������'biscuit'��

mysql> GRANT USAGE ON *.* TO jeffrey@"%" IDENTIFIED BY 'biscuit';

��

shell> mysqladmin -u jeffrey password biscuit 

ע�⣺ PASSWORD()��������Unix������ܵ�ͬ������ʩ�п�����ܡ��㲻Ӧ�üٶ�������Unix��������MySQL������һ���ģ�PASSWORD()����������Unix�����ļ����洢��ͬ���ļ���ֵ����6.2 MySQL �û����Ϳ�����

6.13 Access denied�����ԭ��

������������MySQL������ʱ�����������Access denied������ʾ������ı�ָ��һЩ�������������������Ķ�����

  • �����ڰ�װMySQL�Ժ�����mysql_install_db�Ľű��������ó�ʼ��Ȩ��������������ǣ�����������6.10 ���ó�ʼMySQLȨ����ͨ��ִ�����������Գ�ʼȨ�ޣ�
    shell> mysql -u root test 
    

    ������Ӧ��������������ӡ���ҲӦ�ñ�֤����MySQL���ݿ�Ŀ¼��һ���ļ���user.MYD����ͨ����������PATH/var/mysql/user.MYD�����ڴ�PATH��MySQL��װ��Ŀ¼��·����

  • ��һ���µİ�װ�Ժ���Ӧ�����ӷ�����������������û������ȡ���ɣ�
    shell> mysql -u root mysql 
    

    ������Ӧ���������ӣ���ΪMySQL root�û���ʼʱû�п����Ȼ��Ҳ��һ����ȫ���գ�����������������MySQL�û�ʱ���趨root������һ����Ҫ�����롣�������Ϊroot�������Ӳ��ҵõ��������

    Access denied for user: '@unknown' to database mysql 
    

    ����ζ�ţ���û��һ����Ŀ��user���е�һ��User��ֵΪ'root'����mysqld����Ϊ��ĿͿ����������������������£��������--skip-grant-tablesѡ���������������ұ༭�����/etc/hosts������\windows\hosts���ļ�Ϊ�����������һ����Ŀ��

  • ������һ��3.22.11��ǰ�İ汾����һ���ִ��MySQL��װ��3.22.11����Ժ�汾����������mysql_fix_privilege_tables�ű������û�У�����������GRANT������ܹ���ʱ����Ȩ���Ľṹ��MySQL 3.22.11�޸� ��
  • �����ֱ�Ӷ���Ȩ�����޸�(ʹ��INSERT��UPDATE���)������ĸı��ƺ������ԣ���ס������뷢��һ��FLUSH PRIVILEGES����ִ��һ��mysqladmin flush-privileges����·������ٴζ������������ĸı�Ҫ����һ�η�����������ʱ����Ч����ס�����趨root�����Ժ��㽫����Ҫָ������ֱ��������ϴ(flush)Ȩ���Ժ���Ϊ��������Ȼ����֪����ı��˿��
  • ������Ȩ���ƺ���һ���Ự(session)���иı��ˣ�������һ�������û��ı������ǡ��ٴ�װ����Ȩ���������¿ͻ����ӣ�������ҲӰ���ִ�����ӣ���6.9 Ȩ�޸ı��ʱ��ЧС��������
  • Ϊ�˲��ԣ���--skip-grant-tablesѡ������mysqld�ػ����̣�Ȼ������Ըı�MySQL��Ȩ������ʹ��mysqlaccess�ű��������޸��Ƿ������ڵ�Ч�����������ĸı�����ʱ��ִ��mysqladmin flush-privileges����mysqld��������ʼʹ���µ�Ȩ�ޱ���ע�⣺�ٴ�װ����Ȩ��������--skip-grant-tablesѡ�����������߷�������ʼʹ����Ȩ����������ͣ������������
  • �������һ��Perl��Python��ODBC����Ĵ�ȡ���⣬������mysql -u user_name db_name��mysql -u user_name -pyour_pass db_name����������ӡ����������mysql�ͻ����ӣ�����������һ����������Ǵ�ȡȨ�޵����⡣��ע����-p�Ϳ���֮��û�пո���Ҳ��ʹ��--password=your_pass�䷨ָ�������
  • ����㲻���ÿ�������ǵ��������INSERT, UPDATE��SET PASSWORD������ÿ�������ʹ��PASSWORD()�������������GRANT ... INDENTIFIED BY����mysqladmin password����ָ�����PASSWORD()�����Dz���Ҫ�ġ���6.12 �������ÿ�����
  • localhost���㱾����������һ��ͬ��ʣ�����Ҳ������㲻��ȷ��ָ���������ͻ��������ӵ�ȱʡ������Ȼ�������������������һ��ʹ��MIT-pthreads��ϵͳ�ϣ�����localhost�Dz��е�(localhost����ʹ��Unix�׽��ֽ��У���û�� MIT-pthreads֧��)��Ϊ����������ϵͳ�ϱ���������⣬��Ӧ��ʹ��--hostѡ����ȷ�������������������⽫��һ�� TCP/IP���ӵ�mysqld������������������£���������ڷ����������ϵ�user������Ŀ������ʵ��������������ʹ���ڷ�����ͬһ̨������������һ���ͻ�������Ҳ����ġ���
  • ��������mysql -u user_name db_name�����ݿ�����ʱ�������õ�һ��Access denied�������������user���йص����⣬ͨ��ִ��mysql -u root mysql���ҷ��������SQL����飺
    mysql> SELECT * FROM user; 
    

    ���Ӧ�ð���һ����Host��User�е���Ŀƥ����ļ���������������MySQL�û�����

  • Access denied������Ϣ�������㣬���������ĸ��û����Ե�¼����������ͼ�������ĸ��������������Ƿ�����ʹ��һ�����ͨ������Ӧ����user������һ����Ŀ����ȷ��ƥ���ڴ�����Ϣ���������������û�����
  • ����������Ŵ�һ������MySQL�������������е�����������ʱ����õ����д�����ô��user����û��ƥ����̨�����У�
    Host ... is not allowed to connect to this MySQL server 
    

    �����ͨ��ʹ��mysql�����й��ߣ��ڷ����������ϣ�)������������������ͼ���ӵ��û�/����������¼�һ�е�user���С�����㲻������MySQL 3.22�����㲻֪�������ڴ������ӵĻ�����IP���ֻ�����������Ӧ�ð�һ��'%'��Ŀ��ΪHost��ֵ����user���в����ڷ�����������ʹ��--logѡ������mysqld������ͼ�ӿͻ����������Ժ���MySQL��¼�ļ��е���Ϣ����ʾ����������������ӡ���Ȼ�����ڼ�¼�ļ�������ʾ����ʵ�ʵ�����������user���е�'%'��Ŀ�������㽫��һ������ȫ��ϵͳ����

  • ���mysql -u root test��������mysql -h your_hostname -u root test����Access denied����ô��user���������û�������������ȷ���֡������һ���ձ����������user����Ŀ�е�Hostֵָ��һ��Ψһ����������������ϵͳ�����ֽ������̷���һ����ȫ���������(���෴)�����磬�������user������һ��������'tcx'����Ŀ��������� DNS����MySQL�����������'tcx.subnet.se'����Ŀ�������������԰�һ����Ŀ�ӵ�user���У���������������IP������ΪHost�е�ֵ�������⣬����԰�һ����Ŀ�ӵ�user���У����а���һ��ͨ�����'tcx.%'��Hostֵ��Ȼ����ʹ������%����β��������������ȫ���������Ƽ�����
  • ���mysql -u user_name test��������mysql -u user_name other_db_name����������other_db_name������db����û��û��һ����Ŀ�г���
  • ���ڷ�����������ִ��mysql -u user_name db_nameʱ���������������������ͻ�������ִ��mysql -h host_name -u user_name db_nameʱ����ȴ����������û�аѿͻ���������user����db���С�
  • ����㲻��Ū������Ϊʲô�õ�Access denied����user����ɾ������Host����ͨ���ֵ����Ŀ(������%������_������Ŀ)��һ�����ձ�Ĵ����Dz�����Host='%'��User='some user'����һ������Ŀ����Ϊ�⽫������ָ��localhost��ͬһ̨�����������ӡ�����������ԭ����ȱʡȨ�ް���һ����Host='localhost'��User=''����Ŀ����Ϊ�Ǹ���Ŀһ����'%'�������Hostֵ'localhost'������localhost����ʱ��������ָ������Ŀ����ȷ�IJ����Dz���Host='localhost'��User='some_user'�ĵ�2����Ŀ����ɾ��Host='localhost'��User=''��Ŀ��
  • �����õ����д����������һ����db��host���йص����⣺
    Access to database denied
    

    �����db����ѡ������Host���п�ֵ����Ŀ����֤��host������һ��������Ӧ����Ŀ��ָ������db���е���Щ�����������ʹ��SQL����SELECT ... INTO OUTFILE��LOAD DATA INFILEʱ����õ�������user���е������Ŀ��������fileȨ�ޡ�

  • ��ס���ͻ�����ʹ���������ļ��򻷾�������ָ���˵����Ӳ�����������㲻����������ָ������ʱ��һ���ͻ��ƺ����ڷ��ʹ����ȱʡ���Ӳ����������Ļ������������Ŀ¼�µ���.my.cnf���ļ�����Ҳ���Լ��ϵͳ��Χ��MySQL�����ļ������ܸ������ܽ�������ָ���Ǹ��ͻ������Ӳ�������4.15.4 ѡ���ļ����������û���κ�ѡ������һ���ͻ�ʱ����õ�Access denied��ȷ����û���κ�ѡ���ļ���ָ��һ���ɵĿ����4.15.4 ѡ���ļ���
  • ����κ���������ʧ�ܣ��õ���ѡ��(���磬--debug=d,general,query)����mysqld�ػ����̡��⽫��ӡ�йس������ӵ��������û���Ϣ���ͷ�����ÿ���������Ϣ����G.1 ����һ��MySQL��������
  • ��������κ���MySQL��Ȩ�����������⣬���Ҿ���������ʼ�������⵽�ʼı��������ṩһ��MySQL��Ȩ�����㵹����(dump)�������mysqldump mysql�����㵹���ݿ������ƽʱһ������mysqlbug�ű��ʼ�������⡣��һЩ������������--skip-grant-tables����mysqld�Ա�������mysqldump��

6.14 ����ʹMySQL��ȫ�ԶԿ����ܸ���

��������һ��MySQL������ʱ����ͨ��Ӧ��ʹ��һ���������������������ϴ��䡣

����������Ϣ��Ϊ�ܱ��κ��˶������ı������䡣����㵣����������ʹ��ѹ��Э��(MySQL3.22�����ϰ汾)ʹ�����ø��ѡ�����Ϊ��ʹһ�и���ȫ����Ӧ�ð�װssh����http://www.cs.hut.fi/ssh)��������������һ��MySQL��������һ��MySQL�ͻ�֮��õ�һ�����ܵ�TCP/IP���ӡ�

Ϊ��ʹһ��MySQLϵͳ��ȫ��ǿ��Ҫ���㿼�����н��飺

  • ������MySQL�û�ʹ�ÿ����ס�����other_userû�п���κ����ܼ򵥵���mysql -u other_user db_name��Ϊ�κ��������˵�¼���Կͻ���/������Ӧ�ó��򣬿ͻ�����ָ���κ��û����dz�����������������������ǰ�������ͨ���༭mysql_install_db�ű��ı������û��Ŀ�������MySQL root�Ŀ����������
    shell> mysql -u root mysql
    mysql> UPDATE user SET Password=PASSWORD('new_password')
               WHERE user='root';
    mysql> FLUSH PRIVILEGES;
    
  • ��Ҫ��ΪUnix��root�û�����MySQL�ػ����̡�mysqld�����κ��û����У���Ҳ���Դ���һ���µ�Unix�û�mysqlʹһ�и���ȫ���������Ϊ����Unix�û�����mysqld���㲻��Ҫ�ı���user���е�root�û�������ΪMySQL�û�����Unix �û���û��ϵ���������Ϊ����Unix�û��༭mysql.server�����ű�mysqld��ͨ������su������ɡ����ڸ����ϸ�ڣ���18.8 ������Ϊһ��һ���û�����MySQL��
  • ������һ��Unix root�û��������mysql.server�ű��У�ȷ������ű�ֻ�ܶ�root�ǿɶ��ġ�
  • ����Ǹ�����mysqld��Unix�û���Ψһ�������ݿ�Ŀ¼���ж�/дȨ�޵��û���
  • ��Ҫ��processȨ�޸������û���mysqladmin processlist�������ʾ����ǰִ�еIJ�ѯ���ģ����������û�����һ��UPDATE user SET password=PASSWORD('not_secure')��ѯ��������ִ���Ǹ�������κ��û����ܿ��õ���mysqldΪ��processȨ�޵��û�����һ�����������, �Ա�һ��MySQL root�û��ܵ�¼����飬��ʹ���е�����������ʹ�á�
  • ��Ҫ��fileȨ�޸����е��û�������Ȩ�޵��κ��û�����ӵ��mysqld�ػ�����Ȩ�޵��ļ�ϵͳ����дһ���ļ���Ϊ��ʹ�����ȫһЩ����SELECT ... INTO OUTFILE���ɵ������ļ���ÿ�����ǿɶ��ģ������㲻�ܸ����Ѿ����ڵ��ļ���fileȨ��Ҳ���Ա�������ȡ�κ���Ϊ���з�������Unix�û��ɴ�ȡ���ļ�������ܱ����ã����磬ͨ��ʹ��LOAD DATAװ����/etc/passwd����һ�����ݿ����Ȼ��������SELECT�����롣
  • ����㲻�������DNS����Ӧ������Ȩ����ʹ��IP���ֶ�������������ԭ���Ͻ���--secureѡ���mysqldӦ��ʹ����������ȫ�����κ�����£���Ӧ�÷dz�С�ĵ�ʹ�ð���ͨ�������������

����mysqldѡ��Ӱ�찲ȫ��

--secure
��gethostbyname()ϵͳ���÷��ص�IP���ֱ���飬ȷ�����ǽ����ص�ԭ���������������ijЩ����ͨ��ģ������������ô�ȡȨ�ޱ�ø��ѡ����ѡ��Ҳ����һЩ��������������顣��MySQL3.21�ѡ��ȱʡ�ǹص��ģ���Ϊ����ʱ�����ܳ�ʱ��ִ�з��������MySQL 3.22������������ȱʡ�����������ѡ�
--skip-grant-tables
���ѡ��·�����������ʹ��Ȩ��ϵͳ�����ÿ��������ȫ��ȡ���е����ݿ��Ȩ������ͨ��ִ��mysqladmin reload�����ܸ���һ���������еķ������ٴο�ʼʹ����Ȩ����)
--skip-name-resolve
������������������������Ȩ����Host����ֵ������IP���ֻ�localhost��
--skip-networking
�������ϲ�����TCP/IP���ӡ����е�mysqld�����ӱ��뾭��Unix�׽��ֽ��С����ѡ���ʹ��MIT-pthreads��ϵͳ�Dz����ʵģ���ΪMIT-pthreads����֧��Unix�׽��֡�

��һ��, ǰһ��, ��һ��, ���һ����Ŀ¼

��������  ����Linux