Mysql 数据库的权限问题

之前一直对Mysql数据库的权限没太理解

root用户具有最高的权限,也就是超级用户,root用户可以看到数据库中的所有的内容,而其它用户只能对经过root用户授权过的数据库进行操作,如果想在其它用户中创建新的数据库       而对root用户不可见,是不行的,而将其它用户的权限设置成:

grant all on *.* to ‘my_user‘@‘localhost‘;

这时,其它用户的权限相当于root 用户,没有实际意义。

revoke all on *.* from ‘my_user‘@‘localhost‘;//回收用户的权限

grant all on db.* to ‘my_user‘@‘localhost‘;//只授予对db数据库的操作权限

grant select(stu_no) on db.stu to ‘my_user‘@‘localhost‘;//只授予对db数据库的stu表的stu_no列的select权限   列级授权

select * from mysql.user

查看用户的权限,注:此时查看到的是全局权限,也就是对所有数据库的操作权限而:

grant all on *.* to ‘my_user‘@‘localhost‘;//授予的是数据库权限,全局权限>数据库权限,当全局权限不满足条件时再查看数据库权限

修改全局权限:

update mysql.user set Create_priv=‘Y‘ where user=‘my_user‘;此时会报错,因为mysql安全模式下非主键无法执行update和delete操作

这时查看mysql.user 表:

desc mysql.user

这张表中host和user是组合主键,所以有两种修改方法:

①set sql_safe_updates=0;

②update mysql.user set Create_priv=‘Y where user=‘my_user‘ and host=‘localhost‘;

查看授予给指定用户的权限

show grants for ‘my_user‘@‘localhost‘

时间: 2024-08-28 05:53:19

Mysql 数据库的权限问题的相关文章

MySQL数据库远程访问权限如何打开(两种方法)

MySQL数据库远程访问权限如何打开(两种方法) 下载GPL版本安装 MySQL Community Edition(GPL) Community (GPL) Downloads 在我们使用mysql数据库时,有时我们的程序与数据库不在同一机器上,这时我们需要远程访问数据库.缺省状态下,mysql的用户没有远程访问的权限. 下面介绍两种方法,解决这一问题. 1.改表法 可能是你的帐号不允许从远程登陆,只能在localhost.这个时候只要在localhost的那台电脑,登入mysql后,更改 "

talend 连接mysql数据库没有权限

使用talend连接一个mysql数据库,提示没有权限,最后发现mysql服务器的配置中只监听了127.0.0.1的端口,拒绝非本地的请求.通过将/etc/mysql/my.cnf中的bind_address项注释掉,/etc/init.d/mysql restart重启mysql服务器后,talend可以正常的访问该数据库: [email protected]:~/extract/extract_mysql# vi /etc/mysql/my.cnf # # The MySQL databas

MySQL数据库root权限丢失解决方案

一天不小心把ROOT的权限改到最小了(只能登录,什么都做不了),这可急死我了.重装的话太麻烦,而且里面有很多的用户,一个个重新弄不知道到什么时候. 后来我想了一个办法,先把当前服务器的MySQL服务停止,把MySQL DATa目录下的mysql目录改名为mysql_OLD,到另一个服务器下把mysql目录下的/data/mysql目录复制到对应目录,然后启动MySQL服务,使用另一服务器下的root 的帐号登录到PHPmyadmin,进去之后可以看到有全部的操作权限了,但这个数据表中没有当前服务

mysql数据库root权限丢失(密码丢失)

今天同事,调整mysql安全,在删除用户的时候误删了 [email protected],后来加进去了,但是在登录发现数据库很多库都没有了,顿时懵逼,考虑恢复数据,稍后我看到了,想起当年也出现过类似情况,主要是因为root用户没有权限,所以跳过授权表,经过查询权限,真的缺少,所以将其都由N改为Y ,在次测试,OK,以下是处理步骤. 第一步,跳过授权表登录mysql 1.pkill 停止 实例进程 2.mysqld_safe --defaults-file=/data/3306/my.cnf --

Mysql数据库的权限、索引基本操作

数据库的关闭方法: 1.优雅的关闭数据库的方法:mysqladmin -uroot -p123456 shutdown 2.脚本关闭:/etc/init.d/mysqld stop 3.使用kill信号的方法(最好不用)kill -USR2 'cat path/pid' history不记录历史命令 HISTCONTROL=ignorespace (敲命令的时候加一个空格,可以不记录) 善于使用mysql的help Mysql设置密码的方法:mysqladmin -uroot password

MySQL数据库设置远程访问权限方法小结

http://www.jb51.net/article/42441.htm MySQL基础知识第一期,如何远程访问MySQL数据库设置权限方法总结,讨论访问单个数据库,全部数据库,指定用户访问,设置访问密码,指定访问主机. 1,设置访问单个数据库权限 复制代码代码如下: mysql>grant all privileges on test.* to 'root'@'%'; 说明:设置用户名为root,密码为空,可访问数据库test 2,设置访问全部数据库权限 复制代码代码如下: mysql>g

MySql数据库4【命令行赋权操作】

MySQL 赋予用户权限命令的简单格式可概括为:grant 权限 on 数据库对象 to 用户 一.grant 普通数据用户,查询.插入.更新.删除 数据库中所有表数据的权利. grant select on testdb.* to [email protected]'%' grant insert on testdb.* to [email protected]'%' grant update on testdb.* to [email protected]'%' grant delete o

MySQL Study之--MySQL用户及权限管理

MySQL服务器通过MySQL权限表来控制用户对数据库的访问,MySQL权限表存放在mysql数据库里,由mysql_install_db脚本初始化.这些MySQL权限表分别user,db,table_priv,columns_priv和host.下面分别介绍一下这些表的结构和内容: user权限表:记录允许连接到服务器的用户帐号信息,里面的权限是全局级的.db权限表:记录各个帐号在各个数据库上的操作权限.table_priv权限表:记录数据表级的操作权限.columns_priv权限表:记录数

linux下mysql数据库主从同步配置

说明: 操作系统:CentOS 5.x 64位 MySQL数据库版本:mysql-5.5.35 MySQL主服务器:192.168.21.128 MySQL从服务器:192.168.21.129 准备篇: 说明:在两台MySQL服务器192.168.21.128和192.168.21.129上分别进行如下操作 备注: 作为主从服务器的MySQL版本建议使用同一版本! 或者必须保证主服务器的MySQL版本要高于从服务器的MySQL版本! 一.配置好IP.DNS .网关,确保使用远程连接工具能够连接