import java.sql.*;
public class DatabaseDemo {
  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";
 
      //Get a connection to the database
      Connection con =  DriverManager.getConnection(url,"root", "25560341");
 
      //Display URL and connection information
      System.out.println("URL: " + url);
      System.out.println("Connection: " + con);
     
      //Get a Statement object
      stmt = con.createStatement();
      //Create the new database named ROGER_DB 建立一個新的database
      stmt.executeUpdate("CREATE DATABASE ROGER_DB");

      //建立用戶名 Roger 於資料庫roger_db中, 並定義password 及權限
      //By mysql> GRANT SELECT,INSERT,UPDATE ON 資料庫名.* TO 
      //
user@host IDENTIFIED BY '密碼';
      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');
 
host->填入您要連線的主機名稱(完整名稱hostname+domainname),若位於本機則填localhost。
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 '密碼';
說明:權限授與共分三種:
    * 對資料庫(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
 
user@host表示法:表示來自host主機的user使用者。user為您欲連線MySQL的帳號,host則必須填上你連線來源的主機完整名稱 (hostname.domianname);例如:我想要設定的帳號為Roger,而且是從rogerchan.com.hk這台主機連上來使用的,所以就寫成roger@rogerchan.com.hkGRANT的特性:在MySQL資料庫,若找到相對應的entry則只作UPDATE,找不到才會CREATE一個新的帳號及權限。

權限設定建議:除了管理者外,其他user儘量避免設定全部權限全開。一般而言,只開SELECT、INSERT、UPDATE三項權限;進階的user則加開DELETE、CREAT、DROP、INDEX四項權限;其餘權限,能不開,則不開,以確保整個MySQL的安全性。
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 oraclebox 的頭像
    oraclebox

    油爆豆腐的空間

    oraclebox 發表在 痞客邦 留言(0) 人氣()