日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

MySQL5.7创建数据库与添加用户、删除用户及授权、保证数据库账号安全

發(fā)布時間:2023/12/10 数据库 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MySQL5.7创建数据库与添加用户、删除用户及授权、保证数据库账号安全 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

目錄

1、創(chuàng)建數(shù)據(jù)庫

2、MySQL添加用戶、刪除用戶、更改密碼及授權(quán)

2.1、添加用戶

2.2、刪除用戶

2.3、更改密碼

2.4、授權(quán)

2.5、查看用戶權(quán)限

?3、拓展學習

3.1、MySQL數(shù)據(jù)庫如何定義賬號

3.2、MySQL常見用戶權(quán)限

3.3、查看當前數(shù)據(jù)庫所有用戶權(quán)限

3.4、回收權(quán)限

3.5、查看用戶權(quán)限

3.6、刪除用戶

3.7、修改密碼

3.8、重置root密碼

3.9、如何保證數(shù)據(jù)庫賬號安全?

mysql.user表字段解析


MySQL安裝啟動成功后,首先我們需要創(chuàng)建數(shù)據(jù)庫,然后創(chuàng)建一個用戶去操作這個數(shù)據(jù)庫。

1、創(chuàng)建數(shù)據(jù)庫

// 登錄MySQL客戶端:mysql -h [ip] -u[username] -p[password] C:\Users\Administrator>mysql -h 127.0.0.1 -uroot -p"root" // 創(chuàng)建數(shù)據(jù)庫,指定字符集 mysql> CREATE DATABASE `apollodb` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; // 查看數(shù)據(jù)庫是否創(chuàng)建成功 mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | apollodb | | mysql | | performance_schema | | sys | +--------------------+ 5 rows in set (0.00 sec)//如果庫名寫錯了,當然如果庫名創(chuàng)建錯了,也可以使用命令進行刪除,然后重新創(chuàng)建: mysql> drop database apollodb;

2、MySQL添加用戶、刪除用戶、更改密碼及授權(quán)

2.1、添加用戶

跟以往版本不同,MySQL5.7 mysql.user表沒有password字段,這個字段改成了?authentication_string;

這里我們使用命令進行創(chuàng)建用戶:

// 創(chuàng)建了一個名為:dev001 密碼為:123456 的用戶 mysql> create user 'dev001'@'localhost' identified by '123456'; // 注意:此處的"localhost",是指該用戶只能在本地登錄,不能在另外一臺機器上遠程登錄。 // 如果想遠程登錄的話,將"localhost"改為"%",表示在任何一臺電腦上都可以登錄。 // 也可以指定某臺機器ip可以遠程登錄。 // ##### 實際開發(fā)用“%”方式 ##### mysql> create user 'dev001'@'%' identified by '123456';
  • username:你將創(chuàng)建的用戶名。
  • host:指定該用戶在哪個主機上可以登陸,此處的"localhost",是指該用戶只能在本地登錄,不能在另外一臺機器上遠程登錄,如果想遠程登錄的話,將"localhost"改為"%",表示在任何一臺電腦上都可以登錄;也可以指定某臺機器可以遠程登錄。
  • password:該用戶的登陸密碼,密碼可以為空,如果為空則該用戶可以不需要密碼登陸服務(wù)器。

2.2、刪除用戶

// 刪除用戶“dev001” mysql> drop user dev001@localhost ; // 若創(chuàng)建的用戶允許任何電腦登陸,刪除用戶如下 mysql> drop user dev001@'%';

2.3、更改密碼

// 方法1,密碼實時更新;修改用戶“dev001”的密碼為“1qaz@WSX” mysql> set password for dev001=password('1qaz@WSX');// 方法2,需要刷新;修改用戶“dev001”的密碼為“1qaz@WSX” mysql> update mysql.user set password=password('1qaz@WSX') where user='dev001' // 刷新權(quán)限 mysql> flush privileges;

2.4、授權(quán)

// 策略一:授予用戶kvstore通過外網(wǎng)IP對數(shù)據(jù)庫“apollodb”的全部權(quán)限 mysql> grant all privileges on apollodb.* to 'dev001'@'%' identified by '1qaz@WSX'; // 刷新權(quán)限 mysql> flush privileges;// 策略二:授予用戶“dev001”通過外網(wǎng)IP對于該數(shù)據(jù)庫“apollodb”中表的創(chuàng)建、修改、刪除權(quán)限,以及表數(shù)據(jù)的增刪查改權(quán)限 mysql> grant create,alter,drop,select,insert,update,delete on apollodb.* to dev001@'%'; // 刷新權(quán)限 mysql> flush privileges;// 策略三:授權(quán)dev001用戶擁有所有數(shù)據(jù)庫的某些權(quán)限 mysql> grant select,delete,update,create,drop on *.* to dev001@'%' identified by '1qaz@WSX'; // 刷新權(quán)限 mysql> flush privileges;

privileges:用戶的操作權(quán)限,如select,delete,update,create,drop等;如果要授予所有的權(quán)限可使用all;% 表示對所有非本地主機授權(quán),不包括localhost。

2.5、查看用戶權(quán)限

// 查看用戶“dev001” mysql> show grants for dev001; +------------------------------------------------------+ | Grants for dev001@% | +------------------------------------------------------+ | GRANT USAGE ON *.* TO 'dev001'@'%' | | GRANT ALL PRIVILEGES ON `apollodb`.* TO 'dev001'@'%' | +------------------------------------------------------+ 2 rows in set (0.00 sec)// MySQL通過權(quán)限表來控制用戶對數(shù)據(jù)庫的訪問,權(quán)限表放在mysql數(shù)據(jù)庫中,常見的有user表。 mysql> use mysql; Database changed // 查看用戶權(quán)限 mysql> select user,host from user; +---------------+-----------+ | user | host | +---------------+-----------+ | dev001 | % | | dev001 | localhost | | mysql.session | localhost | | mysql.sys | localhost | | root | localhost | +---------------+-----------+ 5 rows in set (0.02 sec)mysql>

注意:修改完權(quán)限以后 一定要刷新服務(wù),或者重啟服務(wù),刷新服務(wù)用:flush privileges;

最后用MySQL的dev001用戶登錄查看是否有對apollodb數(shù)據(jù)庫的操作權(quán)限:

C:\Users\Administrator>mysql -h 192.168.0.200 -udev001 -p"1qaz@WSX" mysql> mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | apollodb | +--------------------+ 2 rows in set (0.00 sec)mysql> show grants for dev001; +------------------------------------------------------+ | Grants for dev001@% | +------------------------------------------------------+ | GRANT USAGE ON *.* TO 'dev001'@'%' | | GRANT ALL PRIVILEGES ON `apollodb`.* TO 'dev001'@'%' | +------------------------------------------------------+ 2 rows in set (0.00 sec)


?3、拓展學習

3.1、MySQL數(shù)據(jù)庫如何定義賬號

用戶名@可訪問控制列表

如文章開頭的數(shù)據(jù)表查詢,解析如下:

  • (root, localhost) 表示只可以在部署mysql的服務(wù)器上登錄;

  • (root, 192.168.1.%) 表示可以在192.168.1網(wǎng)段登錄MySQL;

  • (root, %) 表示可以從除了本地外的所有外部主機登錄,即允許遠程登錄;

  • (root, sla01) 表示主機名為sla01可以登陸(可以在/etc/hostname查看sla01代表哪臺服務(wù)器。

3.2、MySQL常見用戶權(quán)限

分類語句說明
管理員create user建立新用戶的權(quán)限
grant option為其它用戶授權(quán)的權(quán)限
super管理服務(wù)器的權(quán)限
DDLcreate新建數(shù)據(jù)庫,表的權(quán)限
alter修改表結(jié)構(gòu)的權(quán)限
drop刪除數(shù)據(jù)庫,表的權(quán)限
index建立刪除索引的權(quán)限
DMLselect查詢表數(shù)據(jù)的權(quán)限
insert表中插入數(shù)據(jù)的權(quán)限
update更新表中數(shù)據(jù)的權(quán)限
delete刪除表中數(shù)據(jù)的權(quán)限
execute執(zhí)行存儲過程的權(quán)限

3.3、查看當前數(shù)據(jù)庫所有用戶權(quán)限

mysql> show privileges; +-------------------------+---------------------------------------+-------------------------------------------------------+ | Privilege | Context | Comment | +-------------------------+---------------------------------------+-------------------------------------------------------+ | Alter | Tables | To alter the table | | Alter routine | Functions,Procedures | To alter or drop stored functions/procedures | | Create | Databases,Tables,Indexes | To create new databases and tables | | Create routine | Databases | To use CREATE FUNCTION/PROCEDURE | | Create temporary tables | Databases | To use CREATE TEMPORARY TABLE | | Create view | Tables | To create new views | | Create user | Server Admin | To create new users | | Delete | Tables | To delete existing rows | | Drop | Databases,Tables | To drop databases, tables, and views | | Event | Server Admin | To create, alter, drop and execute events | | Execute | Functions,Procedures | To execute stored routines | | File | File access on server | To read and write files on the server | | Grant option | Databases,Tables,Functions,Procedures | To give to other users those privileges you possess | | Index | Tables | To create or drop indexes | | Insert | Tables | To insert data into tables | | Lock tables | Databases | To use LOCK TABLES (together with SELECT privilege) | | Process | Server Admin | To view the plain text of currently executing queries | | Proxy | Server Admin | To make proxy user possible | | References | Databases,Tables | To have references on tables | | Reload | Server Admin | To reload or refresh tables, logs and privileges | | Replication client | Server Admin | To ask where the slave or master servers are | | Replication slave | Server Admin | To read binary log events from the master | | Select | Tables | To retrieve rows from table | | Show databases | Server Admin | To see all databases with SHOW DATABASES | | Show view | Tables | To see views with SHOW CREATE VIEW | | Shutdown | Server Admin | To shut down the server | | Super | Server Admin | To use KILL thread, SET GLOBAL, CHANGE MASTER, etc. | | Trigger | Tables | To use triggers | | Create tablespace | Server Admin | To create/alter/drop tablespaces | | Update | Tables | To update existing rows | | Usage | Server Admin | No privileges - allow connect only | +-------------------------+---------------------------------------+-------------------------------------------------------+ 31 rows in set (0.00 sec)

3.4、回收權(quán)限

命令:

revoke [insert,delete,update,select ...] on Databasename.Tablename from 'username'@'ip';

3.5、查看用戶權(quán)限

命令:

show grants for 'username'@'ip';

3.6、刪除用戶

drop user 'username'@'ip';

3.7、修改密碼

update mysql.user set authentication_string=password('password') where user='root' and host = 'localhost'; flush privileges; # 新設(shè)置用戶或更改密碼后需用flush

3.8、重置root密碼

  • 修改MySQL的配置文件(my.ini),在[mysqld]下添加一行skip-grant-tables,重啟MYSQL后就不需要密碼了。

  • 重啟后,mysql -u root -p登入數(shù)據(jù)庫

  • update mysql.user set authentication_string=password('password') where user='root' and host = 'localhost';

  • flush privileges;

  • 刪除skip-grant-tables這一行,重新啟動 MySQL。

  • 3.9、如何保證數(shù)據(jù)庫賬號安全?

  • 最小權(quán)限原則;

  • 復(fù)雜密碼強度策略;

  • 密碼過期和限制重用原則;

  • mysql.user表字段解析

    字段名稱說明
    權(quán)限列
    Host主機名,值為%時表示允許非本地的其它所有機器登錄
    User用戶名
    Select_priv確定用戶是否有權(quán)限使用select命令查詢數(shù)據(jù)
    Insert_priv確定用戶是否有權(quán)限使用insert命令插入數(shù)據(jù)
    Update_priv確定用戶是否有權(quán)限使用update命令更新數(shù)據(jù)
    Delete_priv確定用戶是否有權(quán)限使用DELETE命令刪除數(shù)據(jù)
    Create_priv確定用戶是否有權(quán)限使用create命令創(chuàng)建數(shù)據(jù)庫和表
    Drop_priv確定用戶是否有權(quán)限使用drop命令刪除數(shù)據(jù)庫和表
    Reload_priv確定用戶是否有權(quán)限執(zhí)行刷新和重新加載MySQL所用各種內(nèi)部緩存的特定命令,包括日志、權(quán)限、主機、查詢和表重新加載權(quán)限表
    Shutdown_priv確定用戶是否有權(quán)限關(guān)閉MySQL服務(wù)器在將此權(quán)限提供給root賬戶之外的任何用戶時
    Process_priv確定用戶是否有權(quán)限通過SHOW PROCESSLIST命令查看其他用戶的進程?
    File_priv確定用戶是有權(quán)限執(zhí)行SELECT INTO OUTFILE和LOAD DATA INFILE命令
    Grant_priv?
    References_priv?
    Index_priv?
    Alter_priv?
    Show_db_priv?
    Super_priv?
    Create_tmp_table_priv?
    Lock_tables_priv?
    Execute_priv?
    Repl_slave_priv?
    Repl_client_priv?
    Create_view_priv?
    Show_view_priv?
    Create_routine_priv?
    Alter_routine_priv?
    Create_user_priv?
    Event_priv?
    Trigger_priv?
    Create_tablespace_priv?
    安全列
    ssl_type支持ssl標準加密安全字段
    ssl_cipher支持ssl標準加密安全字段
    x509_issuer支持x509標準字段
    x509_subject支持x509標準字段
    password_expired密碼是否過期。Y:說明該用戶密碼已過期 N:沒有過期
    password_last_changed?
    password_lifetime?
    plugin5.5.7開始,mysql引入plugins以進行用戶連接時的密碼驗證,plugin創(chuàng)建外部/代理用戶
    authentication_string通過authentication_string可以控制兩者的映射關(guān)系,(PAM plugin等,PAM可以支持多個服務(wù)名)
    ??
    資源控制列
    max_questions每小時允許執(zhí)行多少次查詢:0表示無限制
    max_updates每小時可以執(zhí)行多少次更新:0表示無限制
    max_connections每小時可以建立的多少次連接:0表示無限制
    max_user_connections單用戶可以同時具有的連接數(shù):0表示無限制
    account_lock

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    總結(jié)

    以上是生活随笔為你收集整理的MySQL5.7创建数据库与添加用户、删除用户及授权、保证数据库账号安全的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。