nodejs之MAC终端操作mysql(二)创建角色、设置权限

------------------创建角色,设置权限-----------------------

****查看角色:SHOW GRANTS;或者  SHOW GRANTS FOR 'lambo1'@'%';

*****查看当前用户:SELECT USER();

***查看所有用户:SELECT DISTINCT User FROM mysql.user;

==========创建一个新用户

*******方法一使用create user

以下命令会在mysql数据库中的user表创建一条用户信息记录。

注意: MySQL 的SQL语句以分号 (;) 作为结束标识。

一步: /usr/local/mysql/bin/mysql -u root -p enter后输入密码;

二步:CREATE USER 'lambo3'@'localhost' IDENTIFIED BY '123456';//如果localhost改为%表示lambo3可以连接任意服务器;


*******方法二:使用赋予权限的同时创建用户

 使用GRANT语句,语法:mysql> grant 权限1,权限2,...权限n on 数据库名称.表名称 to 用户名@用户地址 identified by '密码';如果允许所有权限,权限1,权限2,...权限n就改成all;数据库名称改成*表示所有数据库;表名称改成* 表示所有表;用户地址如果改成%表示所有的地址(即任何一台电脑);

GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON firstDB.* TO 'lambo1'@'localhost' IDENTIFIED BY '123456'

********方法三:插入用户到mysql数据库的user表中(注意:mysql5.7 开始没有password字段了,改成了authentication_string);

insert into mysql.user(Host,User, authentication_string) values("localhost","test",password("123456"));-----不能用

mysql5.0以后会出现错误Field 'ssl_cipher' doesn't have a default value;

原因:5.0以上的mysql用户表的中某些字段不能为空,没有默认值,其实是操作错误,mysql添加用户是不能这样直接insert user表的。

解决:使用方法一或方法二;或者按照下面的操作:


1.创建用户:

create user lambo7;

2.使用mysql数据库

use mysql;

3.更新设置用户密码:

update mysql.user set authentication_string=password('123456') where User='lambo7' and Host='localhost';

4.刷新设置:

flush privileges;


---------------------------设置权限-------------------

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

  2.1 登录MYSQL(有ROOT权限),这里以ROOT身份登录:

  @>mysql -u root -p

  @>密码

  2.2 首先为用户创建一个数据库(testDB):

 create database testDB;

  2.3 授权test用户拥有testDB数据库的所有权限(某个数据库的所有权限):

   grant all privileges on testDB.* to test@localhost identified by '1234';

  flush privileges;//刷新系统权限表

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

  2.4 如果想指定部分权限给一用户,可以这样来写:

  grant select,update on testDB.* to test@localhost identified by '1234';

  flush privileges; //刷新系统权限表

  2.5 授权test用户拥有所有数据库的某些权限:   

  grant select,delete,update,create,drop on *.* to test@"%" identified by "1234";

     //test用户对所有数据库都有select,delete,update,create,drop 权限。

  //@"%" 表示对所有非本地主机授权,不包括localhost。


---------------------取消用户、删除权限-----------------------

a. 取消一个用户和其权限(删除用户,并且权限页删掉)

Drop USER user;

drop user username@'%'

drop user username@localhost

flush privileges; //刷新系统权限表

b.  取消用户授权(可以取消部分和全部):

语法:REVOKE privilege ON databasename.tablename FROM 'username'@'host';

例子: REVOKE SELECT ON *.* FROM 'pig'@'%';

  REVOKE SELECT ON test.user FROM 'pig'@'%';

  revoke all on *.* from sss@localhost ;

  revoke all on user.* from 'admin'@'%';

    flush privileges; //刷新系统权限表

c.  删除用户:(只是删除了user表中的数据,权限设置还在)

语法: Delete from user where user = "user_name" and host = "host_name" ;

例子:delete from user where user='lambo6' and host='localhost';

flush privileges; //刷新系统权限表



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用Node.js操作MySQL数据库的示例代码: 1.安装mysql模块 ```shell npm install mysql ``` 2.连接MySQL数据库 ```javascript const mysql = require('mysql'); const connection = mysql.createConnection({ host: 'localhost', user: 'root', password: 'password', database: 'test' }); connection.connect((err) => { if (err) throw err; console.log('Connected!'); }); ``` 3.创建数据库 ```javascript const mysql = require('mysql'); const connection = mysql.createConnection({ host: 'localhost', user: 'root', password: 'password' }); connection.connect((err) => { if (err) throw err; console.log('Connected!'); connection.query('CREATE DATABASE test', (err, result) => { if (err) throw err; console.log('Database created!'); }); }); ``` 4.创建表 ```javascript const mysql = require('mysql'); const connection = mysql.createConnection({ host: 'localhost', user: 'root', password: 'password', database: 'test' }); connection.connect((err) => { if (err) throw err; console.log('Connected!'); const sql = 'CREATE TABLE customers (name VARCHAR(255), address VARCHAR(255))'; connection.query(sql, (err, result) => { if (err) throw err; console.log('Table created!'); }); }); ``` 5.插入数据 ```javascript const mysql = require('mysql'); const connection = mysql.createConnection({ host: 'localhost', user: 'root', password: 'password', database: 'test' }); connection.connect((err) => { if (err) throw err; console.log('Connected!'); const sql = 'INSERT INTO customers (name, address) VALUES ("Company Inc", "Highway 37")'; connection.query(sql, (err, result) => { if (err) throw err; console.log('1 record inserted'); }); }); ``` 6.查询数据 ```javascript const mysql = require('mysql'); const connection = mysql.createConnection({ host: 'localhost', user: 'root', password: 'password', database: 'test' }); connection.connect((err) => { if (err) throw err; console.log('Connected!'); const sql = 'SELECT * FROM customers'; connection.query(sql, (err, result) => { if (err) throw err; console.log(result); }); }); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值