程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySQL數據庫需安全配置與注意事項

MySQL數據庫需安全配置與注意事項

編輯:MySQL綜合教程

可能很多朋友使用mysql都是直接安裝就好了,幾乎沒有什麼安全知識了,因為覺得mysql不會像php那樣需要安全配置,其實你這樣就讓你的數據庫存在很大的風險了,下面我來介紹mysql安裝時的一些安全配置

當你第一次在機器上安裝MySQL時,mysql數據庫中的授權表是這樣初始化的:

你可以從本地主機(localhost)上以root連接而不指定口令。root用戶擁有所有權限(包括管理權限)
並可做任何事情。(順便說明,MySQL超級用戶與Unix超級用戶有相同的名字,他們彼此毫無關系。)

匿名訪問被授予用戶可從本地連接名為test和任何名字以test_開始的數據庫。匿名用戶可對數據庫做任
何事情,但無管理權限。

從本地主機多服務器的連接是允許的,不管連接的用戶使用一個localhost主機名或真實主機名。如:

 代碼如下 復制代碼

% mysql -h localhost test

% mysql -h pit.snake.net test

你以root連接MySQL甚至不指定口令的事實只是意味著初始安裝不安全,所以作為管理員的你首先要做的
應該是設置root口令,然後根據你設置口令使用的方法,你也可以告訴服務器重載授權表是它知道這個改
變。(在服務器啟動時,它重載表到內存中而可能不知道你已經修改了它們。)

對MySQL 3.22和以上版本,你可以用mysqladmin設置口令:

 代碼如下 復制代碼

% mysqladmin -u root password yourpassword

對於MySQL的任何版本,你可以用mysql程序並直接修改mysql數據庫中的user授權表:

 代碼如下 復制代碼

% mysql -u root mysql

mysql>UPDATE user SET password=PASSWORD("yourpassword") WHERE User="root";

如果你有MySQL的老版本,使用mysql和UPDATE。

在你設置完口令後,通過運行下列命令檢查你是否需要告訴服務器重載授權表:

 代碼如下 復制代碼

% mysqladmin -u root status

如果服務器仍然讓你以root而不指定口令而連接服務器,重載授權表:

 代碼如下 復制代碼

% mysqladmin -u root reload

在你設置了root的口令後(並且如果需要重載了授權表),你將需要在任何時候以root連接服務器時指定


下面是我整理的一些方法


1.設置或修改Mysql root密碼:
默認安裝後空密碼,以mysqladmin命令設置密碼:

 代碼如下 復制代碼

mysqladmin -uroot password "password"Mysql命令設置密碼:

mysql> set password for root@localhost=password('password);更改密碼:

update mysql.user set password=password('password') where user='root';
flush privileges;

2.刪除默認的數據庫和用戶

 代碼如下 復制代碼 drop database test;
use mysql;
delete from db;
delete from user where not(host="localhost" and user="root");
flush privileges;

3. 更改默認root賬號名稱:

 代碼如下 復制代碼 update mysql.user set user="admin" where user="root";
flush privileges;

4. 本地文件安全:

 代碼如下 復制代碼 set-variable=local-infile=0

5. 禁止遠程連接mysql,遠程管理可通過phpmyadmin,編輯my.cnf在[mysqld]添加:

 代碼如下 復制代碼

skip-networking

6.最小權限用戶:

 代碼如下 復制代碼 create database db1;
grant select,insert,update,delete,create,drop privileges on database.* to user@localhost identified by 'passwd';

7. 限制普通用戶浏覽其它數據庫,編輯my.cnf在[mysqld]添加:

 代碼如下 復制代碼 --skip-show-database8

.快速修復MySQL數據庫


修復數據庫

mysqlcheck -A -o -r -p修復指定的數據庫

 代碼如下 復制代碼

mysqlcheck  -o -r database -p

9.跟據內存的大小選擇MySQL的配置文件:

 代碼如下 復制代碼

my-small.cnf # > my-medium.cnf # 32M - 64M
my-large.cnf # memory = 512M
my-huge.cnf # 1G-2G
my-innodb-heavy-4G.cnf # 4GB

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved