zoukankan      html  css  js  c++  java
  • mysql-用户权限管理

    第一步:mysql服务的启动和停止

    net stop mysql

    net start mysql

    第二步:直接登陆mysql

    语法如下: mysql -u用户名 -p用户密码

    键入命令mysql -uroot -p, 回车后提示你输入密码,输入123456,然后回车即可进入到mysql中了,mysql的提示符是:

    mysql>

    注意,如果是连接到另外的机器上,则需要加入一个参数-h机器IP

    第三步:增加新用户

    格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码"

    如,增加一个用户user1密码为password1,让其可以在本机上登录, 并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入mysql,然后键入以下命令:

    grant select,insert,update,delete on *.* to user1@localhost Identified by "password1";

    如果希望该用户能够在任何机器上登陆mysql,则将localhost改为"%"。

    如果你不想user1有密码,可以再打一个命令将密码去掉。

    grant select,insert,update,delete on mydb.* to user1@localhost identified by "";

    第四步: 操作数据库

    登录到mysql中,然后在mysql的提示符下运行下列命令,每个命令以分号结束。

    1、 显示数据库列表。

    show databases;

    缺省有两个数据库:mysql和test。 mysql库存放着mysql的系统和用户权限信息,我们改密码和新增用户,实际上就是对这个库进行操作。

    2、 显示库中的数据表:

    use mysql;

    show tables;

    3、 显示数据表的结构:

    describe 表名;

    4、 建库与删库:

    create database 库名;

    drop database 库名;

    5、 建表:

    use 库名;

    create table 表名(字段列表);

    drop table 表名;

    6、 清空表中记录:

    delete from 表名;

    7、 显示表中的记录:

    select * from 表名;

    第五招、导出和导入数据

    1. 导出数据:

    mysqldump –opt test > mysql.test

    即将数据库test数据库导出到mysql.test文件,后者是一个文本文件

    如:mysqldump -u root -p123456 –databases dbname > mysql.dbname

    就是把数据库dbname导出到文件mysql.dbname中。

    2. 导入数据:

    mysqlimport -u root -p123456 < mysql.dbname。

    不用解释了吧。

    3. 将文本数据导入数据库:

    文本数据的字段数据之间用tab键隔开。

    use test;

    load data local infile "文件名" into table 表名;

    1:使用SHOW语句找出在服务器上当前存在什么数据库:

    mysql> SHOW DATABASES;

    2:2、创建一个数据库MYSQLDATA

    mysql> CREATE DATABASE MYSQLDATA;

    3:选择你所创建的数据库

    mysql> USE MYSQLDATA; (按回车键出现Database changed 时说明操作成功!)

    4:查看现在的数据库中存在什么表

    mysql> SHOW TABLES;

    5:创建一个数据库表

    mysql> CREATE TABLE MYTABLE (name VARCHAR(20), sex CHAR(1));

    6:显示表的结构:

    mysql> DESCRIBE MYTABLE;

    7:往表中加入记录

    mysql> insert into MYTABLE values ("hyq","M");

    8:用文本方式将数据装入数据库表中(例如D:/mysql.txt)

    mysql> LOAD DATA LOCAL INFILE "D:/mysql.txt" INTO TABLE MYTABLE;

    9:导入.sql文件命令(例如D:/mysql.sql)

    mysql>use database;

    mysql>source d:/mysql.sql;

    10:删除表

    mysql>drop TABLE MYTABLE;

    11:清空表

    mysql>delete from MYTABLE;

    12:更新表中数据

    mysql>update MYTABLE set sex="f" where name=’hyq’;

    posted on 2006-01-10 16:21 happytian 阅读(6) 评论(0) 编辑 收藏 收藏至365Key

    13:备份数据库

    mysqldump -u root 库名>xxx.data

    14:例2:连接到远程主机上的MYSQL

    假设远程主机的IP为:110.110.110.110,用户名为root,密码为abcd123。则键入以下命令:

    mysql -h110.110.110.110 -uroot -pabcd123

    (注:u与root可以不用加空格,其它也一样)

    3、退出MYSQL命令: exit (回车)

    ===========================================

     

    MySQL的权限系统围绕着两个概念:

    1:认证->确定用户是否允许连接数据库服务器

    2:授权->确定用户是否拥有足够的权限执行查询请求等。

    显然从上面可知,如果认证不成功的话,哪么授权肯定是无法进行的。在这里我们要关注两个表,分别是在MySQL数据库中user表和db表。

    user表在某种程度上是独一无二的,因为它是唯一一个在权限请求的认证和授权阶段都起作用的表,也是唯一一个存数MySQL服务器相关权限的权限表。在认证阶段,它只是负责为用户授权访问MySQL服务器,确定用户每小时的最大连接数和最大并发数;在授权阶段,user确定允许访问服务器的用户是否被赋予了操作数据库的全局权限,确定用户每小时的最大查询数和更新数。

    db表用于为每个用户针对每个数据库赋予权限。具体的可以查看db的字段。

    用户和权限管理命令:

    create user :用于创建新的用户账户(从5.0版本开始有这个命令),在创建这个用户的时候不分配任何权限,需要在创建之后通过grant命令来给改用户分配相应的权限。

    eg:create user guest@localhost identified by ’123456′; 
    grant select on mydb.* to guest@localhost;

    drop user:删除一个用户账户(注意在4.1.1版本之前只能删除没有任何权限的账户,5.0.2之后可以删除任何账户)

    eg:drop user guest;

    rename user:可以实现重命名一个用户账号。

    grant:用于管理访问权限,也就是给用户账号授权。当然它同样可以创建一个新的用户账户。

    eg:grant select, insert, update, delete on new_db.* to guest@’%’ identified by ’88888888′;

    grant 权限 on 数据库.表 to 用户 @ 访问方式 identified by 密码

    grant select on mydb.* to guest@localhost identified by ’123456′;

    BTW:如果需要一个空密码或者无密码的账户,必须先用Create User命令,然后通过

    grant来分配权限。如果如下操作:

    grant all privileges on mydb.* to visitor@’%’ ;而在数据库user表中没有先创建visitor

    用户,则会发生1133错误"Can’t find any matching row in the user table"。grant只能创

    有密码的账户。

    revoke:删除一个账户,具体查看MySQL的文档

    注:本操作是在WIN命令提示符下,phpMyAdmin同样适用。
    用户:phplamp
    用户数据库:phplampDB

    1.MySQL命令行新建用户

    //登录MYSQL
    @>mysql -u root -p
    @>密码
    //创建用户
    mysql> insert into mysql.user(Host,User,Password) values('localhost','phplamp',password('1234'));
    //刷新系统权限表
    mysql>flush privileges;
    这样就创建了一个名为:phplamp  密码为:1234  的用户。

    //退出后登录一下
    mysql>exit;
    @>mysql -u phplamp -p
    @>输入密码
    mysql>登录成功

    2.MySQL命令行为用户授权

    //登录MYSQL(有ROOT权限)。我里我以ROOT身份登录.
    @>mysql -u root -p
    @>密码
    //首先为用户创建一个数据库(phplampDB)
    mysql>create database phplampDB;
    //授权phplamp用户拥有phplamp数据库的所有权限
    @>grant all privileges on phplampDB.* to phplamp@localhost identified by '1234'; //这里需要注意,如果发现找不到用户,需要执行命令  flush privilieges;
    //刷新系统权限表
    mysql>flush privileges;
    mysql>其它操作

    //如果想指定部分权限给一用户,可以这样来写:
    mysql>grant select,update on phplampDB.* to phplamp@localhost identified by '1234';
    //刷新系统权限表。
    mysql>flush privileges;

    mysql> grant 权限1,权限2,…权限n on 数据库名称.表名称 to 用户名@用户地址 identified by ‘连接口令’;

    权限1,权限2,…权限n代表select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file等14个权限。
    当权限1,权限2,…权限n被all privileges或者all代替,表示赋予用户全部权限。
    当数据库名称.表名称被*.*代替,表示赋予用户操作服务器上所有数据库所有表的权限。
    用户地址可以是localhost,也可以是ip地址、机器名字、域名。也可以用’%'表示从任何地址连接。
    ‘连接口令’不能为空,否则创建失败。

    例如:
    mysql>grant select,insert,update,delete,create,drop on vtdc.employee to joe@10.163.225.87 identified by ‘123′;
    给来自10.163.225.87的用户joe分配可对数据库vtdc的employee表进行select,insert,update,delete,create,drop等操作的权限,并设定口令为123。

    mysql>grant all privileges on vtdc.* to joe@10.163.225.87 identified by ‘123′;
    给来自10.163.225.87的用户joe分配可对数据库vtdc所有表进行所有操作的权限,并设定口令为123。

    mysql>grant all privileges on *.* to joe@10.163.225.87 identified by ‘123′;
    给来自10.163.225.87的用户joe分配可对所有数据库的所有表进行所有操作的权限,并设定口令为123。

    mysql>grant all privileges on *.* to joe@localhost identified by ‘123′;
    给本机用户joe分配可对所有数据库的所有表进行所有操作的权限,并设定口令为123。 

  • 相关阅读:
    【2019/3/23】周进度报告
    第十周总结
    程序员修炼之道-从小工到专家阅读笔记01
    第九周总结
    用户模板和用户场景
    一维数组最大子数组续
    程序员的自我修养阅读笔记03
    第八周总结
    NABCD项目分析
    第七周总结
  • 原文地址:https://www.cnblogs.com/CWQPHP/p/10650563.html
Copyright © 2011-2022 走看看