mysql的权限系统(2)

2019-08-30 13:40

#重新加载权限表 Flush privileges;

例10 使用UPDATE语句将testUser用户的密码修改为“newpwd2”: UPDATE mysql.user set Password=PASSWORD(\WHERE User=\#重新加载权限表 Flush privileges;

? 使用GRANT命令修改密码

例11 使用GRANT语句将testUser用户的密码修改为“123456”: GRANT USAGE ON *.* TO 'testUser'@'localhost' IDENTIFIED BY '123456'; (2)使用set语句修改密码

例12 使用SET语句将root用户的密码修改为“123456789”: SET PASSWORD=password(\

例13 使用SET语句将testUser用户的密码修改为“123456789”: SET PASSWORD FOR 'testUser'@'localhost'=password(\6.1.4 权限管理 1、mysql的权限类型 权限名称 Select insert Update Delete Create Drop Reload Shutdown Process File Grant option 对应user表列 Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv 权限范围 表或列 表 表或列 表 数据库、表、索引 数据库、表、视图 服务器上的文件 服务器管理 存储过程或函数 服务器上的文件 数据库、表、存储过程 References Index Alter Show database Super Createtmp_table Locktables Execute References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv 数据库、表 索引查询的表 数据库 服务器管理 服务器管理 表 表 存储过程或函数 服务器管理 服务器管理 视图 视图 存储过程或函数 存储过程或函数 服务器管理 数据库 Replication slave Repl_slave_priv Replication client Create view Show view Createroutine Alterroutine Create user event 2、授权 (1)权限级别

? 全局层级:grant all on *.*

? 数据库层级:grant all on db_name.*

Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv Event_priv ? 表层级:grant on table_name或database_name.table_name ? 列层级 ? 子程序层级 (2)授权语句

例14 使用GRANT语句创建一个新的用户aaaa,密码为“123456”。用户aaaa对所有的数据有查询、插入权限,并授于GRANT权限。 GRANT语句:

GRANT SELECT,INSERT ON *.* TO 'aaaa'@'localhost' IDENTIFIED BY '123456'

WITH GRANT OPTION;

使用SELECT语句查询用户权限:

SELECT Host,User,Select_priv,Insert_priv, Grant_priv FROM mysql.user where user='aaaa';

例15 使用grant语句将test数据库中student表的delete权限授予用户testUser。 GRANT deleteON test.student TO 'testUser'@'localhost'

例16使用grant语句将test数据库中的sc表的degree列的update权限授予用户testUser。

GRANT update(degree) ON test.sc TO 'testUser'@'localhost' 3、收回权限 (1)收回所有权限

例17收回aaaa用户的所有权限,包括grant权限。 REVOKE all privileges,grantoption FROM 'aaaa'@'localhost'; (2)收回指定权限

例18使用REVOKE语句取消用户testUser的更新权限。 #REVOKE语句:

MySQL> REVOKE UPDATE ON *.* FROM 'testUser'@'localhost'; #使用SELECT语句查询用户test的权限:

MySQL> SELECT Host,User,Select_priv,Update_priv,Grant_priv FROM MySQL.user where user='testUser';

例19 收回testUser用户对sc表的degree列的uodate权限。

MySQL> REVOKE UPDATE(degree ) ON test.sc FROM 'testUser'@'localhost'; 4、查看权限

例20 使用SHOW GRANTS语句查询用户testUser的权限信息。SHOW GRANTS语句及其执行结果如下:

MySQL> SHOW GRANTS FOR 'testUser'@'localhost';

案例操作过程

打开MySQL客户端工具,输入登录命令,登录MySQL。 C:\\>mysql -u root -p Enter password: **

输入正确密码,按回车,出现欢迎信息表示登录成功。 选择mysql数据库为当前数据库。 MySQL> use mysql; Database changed

出现Database changed信息表明切换数据库成功。

创建新账户,用户名称为newAdmin,密码为pw1,允许其从本地主机访问MySQL。 使用GRANT语句创建新账户,创建过程如下: MySQL> GRANT SELECT, UPDATE(id, name, age) -> ON test_db.person_old

-> TO 'newAdmin'@'localhost' IDENTIFIED BY 'pw1' -> WITH MAX_CONNECTIONS_PER_HOUR 30; Query OK, 0 rows affected (0.06 sec) 提示消息可以看到,语句执行成功。

分别从user表中查看新账户的账户信息,从tables_priv和columns_priv表中查看权限信息。

用户账户创建完成之后,账户信息已经保存在user表,权限信息则分别保存在tables_priv和columns_priv中,查询user名称为newAdmin的账户信息,执行过程如下:

SELECT host, user, select_priv, update_priv FROM user WHERE user='newAdmin';

SELECT host, db, user, table_name, table_priv, column_priv FROM tables_priv WHERE user='newAdmin';

SELECT host, db, user, table_name, column_name, column_priv FROM columns_priv WHERE user='newAdmin';

3条SQL语句的查询结果分别如下:

MySQL> SELECT host, user, select_priv, update_priv FROM user WHERE user='newAdmin';

+-----------+--------------+-------------+--------------+ | host | user | select_priv | update_priv | +-----------+--------------+-------------+--------------+ | localhost | newAdmin | N | N | +-----------+--------------+-------------+--------------+ 1 row in set (0.00 sec)

MySQL> SELECT host, db, user, table_name, table_priv, column_priv -> FROM tables_priv WHERE user='newAdmin'; +-----------+-----+-------------+-------------+-------------+---------------+

| host | db | user | table_name | table_priv | column_priv | +-----------+-----+-------------+-------------+-------------+---------------+

| localhost | test | newAdmin | person | Select | Update | +-----------+-----+-------------+-------------+-------------+---------------+ 1 row in set (0.00 sec)

MySQL> SELECT host, db, user, table_name, column_name, column_priv -> FROM columns_priv WHERE user='newAdmin'; +-----------+-----+-------------+-------------+-----------------+----------------+

| host | db | user | table_name | column_name | column_priv | +-----------+-----+-------------+-------------+-----------------+----------------+

| localhost | test | newAdmin | person | id | Update | | localhost | test | newAdmin | person | name | Update | | localhost | test | newAdmin | person | age | Update | +-----------+-----+-------------+-------------+-----------------+----------------+ 3 rows in set (0.00 sec)


mysql的权限系统(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:第九届中国国际茶业博览会招展资料doc版 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: