import java.sql.*;
public class DatabaseDemo {
public static void main(String args[]){
try {
Statement stmt;
Class.forName("com.mysql.jdbc.Driver");
public static void main(String args[]){
try {
Statement stmt;
Class.forName("com.mysql.jdbc.Driver");
//Define URL of database server for, database named mysql on
//the localhost with the default port number 3306.
String url = "jdbc:mysql://localhost:3306/mysql";
//the localhost with the default port number 3306.
String url = "jdbc:mysql://localhost:3306/mysql";
//Get a connection to the database
Connection con = DriverManager.getConnection(url,"root", "25560341");
Connection con = DriverManager.getConnection(url,"root", "25560341");
//Display URL and connection information
System.out.println("URL: " + url);
System.out.println("Connection: " + con);
System.out.println("URL: " + url);
System.out.println("Connection: " + con);
//Get a Statement object
stmt = con.createStatement();
stmt = con.createStatement();
//Create the new database named ROGER_DB 建立一個新的database
stmt.executeUpdate("CREATE DATABASE ROGER_DB");
stmt.executeUpdate("CREATE DATABASE ROGER_DB");
//建立用戶名 Roger 於資料庫roger_db中, 並定義password 及權限
//By mysql> GRANT SELECT,INSERT,UPDATE ON 資料庫名.* TO
//
stmt.executeUpdate("GRANT SELECT,INSERT,UPDATE,DELETE,"
+"CREATE,DROP"+"ON ROGER_DB.* TO \'rogerchan\'@\'localhost\'"
+ " IDENTIFIED BY \'25560341\' WITH GRANT OPTION");
con.close();
}catch( Exception e ) {
e.printStackTrace();
}//end catch
}//end main
}//end class Jdbc11
/*SQL 增使用者USER
增加一個新帳號,並設定權限
insert into user values ('host','user',password('密碼'),
'R','R','R','R','R','R','R','R','R','R','R','R','R','R');
'R','R','R','R','R','R','R','R','R','R','R','R','R','R');
host->填入您要連線的主機名稱(完整名稱hostname+domainname),若位於本機則填localhost。
user-->要設定的帳號
密碼-->要設定的密碼
14個R代表著14個不同的權限,依序為
user-->要設定的帳號
密碼-->要設定的密碼
14個R代表著14個不同的權限,依序為
1.Select_priv | 2.Insert_priv | 3.Update_priv | 4.Delete_priv | 5.Index_priv |
6.Alter_priv | 7.Create_priv | 8.Drop_priv | 9.Grant_priv | 10.References_priv |
11.Reload_priv | 12.Shutdown_priv | 13.Process_priv | 14.File_priv |
若您不開放權限,則在該項目下填n即可。
增加新的MySQL使用者:(方法二)(較安全)
格式:
mysql> GRANT 權限 ON 資料庫(或資料表TABLE) TO
user@host IDENTIFIED BY '密碼';格式:
mysql> GRANT 權限 ON 資料庫(或資料表TABLE) TO
說明:權限授與共分三種:
* 對資料庫(DateBase)有十五種權限:
ALL PRIVILEGES ALTER CREATE DELETE DROP
FILE INDEX INSERT PROCESS REFERENCES
RELOAD SELECT SHUTDOWN UPDATE USAGE
* 對資料表(Table)則只有八種權限:
SELECT INSERT UPDATE DELETE CREATE
DROP INDEX ALTER
* 對資料欄(column)則只有三種權限:
SELECT INSERT UPDATE
ALL PRIVILEGES ALTER CREATE DELETE DROP
FILE INDEX INSERT PROCESS REFERENCES
RELOAD SELECT SHUTDOWN UPDATE USAGE
* 對資料表(Table)則只有八種權限:
SELECT INSERT UPDATE DELETE CREATE
DROP INDEX ALTER
* 對資料欄(column)則只有三種權限:
SELECT INSERT UPDATE
user@host表示法:表示來自host主機的user使用者。user為您欲連線MySQL的帳號,host則必須填上你連線來源的主機完整名稱 (hostname.domianname);例如:我想要設定的帳號為Roger,而且是從rogerchan.com.hk這台主機連上來使用的,所以就寫成roger@rogerchan.com.hk。GRANT的特性:在MySQL資料庫,若找到相對應的entry則只作UPDATE,找不到才會CREATE一個新的帳號及權限。
權限設定建議:除了管理者外,其他user儘量避免設定全部權限全開。一般而言,只開SELECT、INSERT、UPDATE三項權限;進階的user則加開DELETE、CREAT、DROP、INDEX四項權限;其餘權限,能不開,則不開,以確保整個MySQL的安全性。
權限設定建議:除了管理者外,其他user儘量避免設定全部權限全開。一般而言,只開SELECT、INSERT、UPDATE三項權限;進階的user則加開DELETE、CREAT、DROP、INDEX四項權限;其餘權限,能不開,則不開,以確保整個MySQL的安全性。
全站熱搜