1. 계정 추가:
# 创建一个密码为123456的testuser账户# 若不写【identified by '123456'】则创建一个密码为空的testuser账户mysql> create user testuser identified by '123456';# 刷新权限变更mysql> flush privileges;
2. 권한 부여
# 为testuser账户授予本地访问所有数据库的所有权限mysql> grant all privileges on *.* to 'testuser'@'localhost' identified by '123456'; mysql> flush privileges;
명령 형식:
grant privilegesCode on dbName.tableName to username@host identified by "password";
privilegesCode
는 일반적으로 사용되는 권한 유형을 나타냅니다. privilegesCode
表示授予的权限类型,常用的有以下几种类型: all privileges
:所有权限; select
:读取权限; delete
:删除权限; update
:更新权限; create
:创建权限; drop
:删除数据库、数据表权限。
完整的权限类型如下:
Select_priv: Y Insert_priv: Y Update_priv: Y Delete_priv: Y Create_priv: Y Drop_priv: Y Reload_priv: Y Shutdown_priv: Y Process_priv: Y File_priv: Y Grant_priv: Y References_priv: Y Index_priv: Y Alter_priv: Y Show_db_priv: Y Super_priv: Y Create_tmp_table_priv: Y Lock_tables_priv: Y Execute_priv: Y Repl_slave_priv: Y Repl_client_priv: Y Create_view_priv: Y Show_view_priv: Y Create_routine_priv: Y Alter_routine_priv: Y Create_user_priv: Y Event_priv: Y Trigger_priv: YCreate_tablespace_priv: Y
详细介绍可阅读MySQL官方文档
dbName.tableName
表示授予权限的具体库或表,常用的有以下几种选项:
*.*
:授予该数据库服务器所有数据库的所有表的权限; dbName.*
:授予dbName数据库所有表的权限; dbName.dbTable
:授予数据库dbName中dbTable表的权限。
username@host
表示授予的用户以及允许该用户登录的IP地址。其中host有以下几种类型:
localhost
:只允许该用户在本地登录,不能远程登录。 %
:允许在除本机之外的任何一台机器远程登录。 192.168.1.11
:具体的IP表示只允许该用户从特定IP登录。
identified by "password"
all 권한
: 모든 권한;
select
: 읽기 권한; 삭제
: 권한 삭제
업데이트
: 업데이트 권한; code>create: 생성 권한 drop
: 데이터베이스 및 데이터 테이블 삭제 권한.
전체 권한 유형은 다음과 같습니다.
mysql> show grants for 'testuser';
dbName.tableName
은 권한이 부여된 특정 라이브러리 또는 테이블을 나타냅니다. 옵션은 일반적으로 사용됩니다.