MySQL與Oracle 差異比較之七用戶權限


  • 用戶權限
編號 類別 ORACLE MYSQL 注釋
1 創建用戶 Create user user_name identified by user_password
default tablespace starSpace temporary tablespace temp;
CREATE USER user_name IDENTIFIED BY user_password; 1.oracle創建用戶
Oracle 的默認用戶有三個: sys / system / scott. 其中sys和system 是系統用戶,擁有dba權限, scott用戶是Oracle數據庫的一個示范賬戶, 在數據庫安裝時創建, 不具備dba權限.
創建用戶命令:
Create user user_name identified by user_password
[default tablespace tableSpace]
[temporary tablespace tableSpace};
說明:
每個用戶都有一個默認表空間和一個臨時表空間,如果沒有指定,oracle就將system設置為默認表空間,將temp設為臨時表空間.

2.mysql創建用戶
創建用戶命令:
mysql> CREATE USER yy IDENTIFIED BY '123';
yy表示你要建立的用戶名,后面的123表示密碼
上面建立的用戶可以在任何地方登陸。
如果要限制在固定地址登陸,比如localhost 登陸:
mysql> CREATE USER yy@localhost IDENTIFIED BY '123';
2 刪除用戶 Drop user user_name cascade; Drop user user_name; 1. Oracle
SQL>drop user 用戶名;  //用戶沒有建任何實體
SQL> drop user 用戶名 CASCADE;  // 將用戶及其所建實體全部刪除
注: 當前正連接的用戶不得刪除。

2. Mysql
自4.1.1以后,刪除一個MYSQL帳戶,可以使用drop user 語句了。
不過在5.0.2之前的版本中,drop user語句只能刪除沒有任何權限的用戶。
從5.0.2往后的版本中,drop user語句可以刪除任何用戶。(當然不能自己刪自己)。示例:drop user "garfield"@"localhost"。別忘了加后面的@,不然會報錯。

在4.1.1與5.0.2之間的版本中要刪除一個MYSQL帳戶,需要進行以下操作。
1) 使用show grants語句查看要刪除的MYSQL帳戶都有哪些權限,使用方法如show grants for "garfield"@"localhost"。
2) 使用revoke語句收回用戶在show grants里擁有的權限。執行這個語句將刪除除user表之外的其它所有權限表中的相關記錄,並且收回在user表中該用戶擁有的全局權限。
3) 使用drop user 語句把用戶從user表中刪除。
3 修改密碼 alter user user_name identified by new_password
mysqladmin -u root -p 123456 password "your password";
1.mysql修改密碼
第一種方式:
  1) 更改之前root沒有密碼的情況
    c:\mysql\bin>mysqladmin -u root password "your password"
2) 更改之前root有密碼的情況,假如為123456
  c:\mysql\bin>mysqladmin -u root -p123456 password "your password"
  注意:更改的密碼不能用單引號,可用雙引號或不用引號
第二種方式:
 1) c:\mysql\bin>mysql -uroot -p密碼 以root身份登錄
 2) mysql>use mysql 選擇數據庫
 3) mysql>update user set password=password('你的密碼') where User='root';
 4) mysqlflush privileges; 重新加載權限表
4 設置用戶權限 Grant connect to star  -- star角色允許用戶連接數據庫, 並創建數據庫對象
Grant resource to star  -- star角色允許用戶使用數據庫中的存儲空間.
Grant dba to star    -- DBA權限
GRANT ALL ON picture.* TO test IDENTIFIED BY "test"; 1. 詳見<<oracle vs mysql 用戶權限.doc>>  2.1 Oracle 權限設置
2. 詳見<<oracle vs mysql 用戶權限.doc>>  1.4 用戶權限設置
5  回收權限 Revoke select, update on product from user02; REVOKE privileges (columns) ON what FROM user 1. Oracle
   Revoke語句的基本格式如下:
   REVOKE 權限類型 [(字段列表)] [, 權限類型 [(字段列表)]…]ON {數據庫名稱.表名稱}FROM 用戶名@域名或IP地址
例如,管理員撤銷用戶admin@localhost對數據庫xsxk所擁有的創建、創建數據庫及表的權限,並撤銷該用戶可以把自己所擁有的權限授予其他用戶的權限,可使用以下命令。
mysql>revoke create,drop on xsxk.* from admin@localhost;
mysql>revoke grant option on xsxk.* from admin@localhost;
revoke語句中的“用戶名@域名或IP地址”部分必須匹配原來grant語句中的“用戶名@域名或IP地址”部分,而“權限類型”部分可以是所授權的一部分權限。而且,revoke只能撤銷權限,不能刪除用戶賬戶,在授權表user中仍保留該用戶的記錄;用戶仍可以連接到數據庫服務器。如果要完全刪除用戶,則使用前面提到的delete語句從user表中刪除該用戶記錄。

2. Mysql
要取消一個用戶的權限,使用REVOKE語句。REVOKE的語法非常類似於GRANT語句,除了TO用FROM取代並且沒有INDETIFED BY和WITH GRANT OPTION子句:
REVOKE privileges (columns) ON what FROM user
user部分必須匹配原來GRANT語句的你想撤權的用戶的user部分。privileges部分不需匹配,你可以用GRANT語句授權,然后用REVOKE語句只撤銷部分權限。
REVOKE語句只刪除權限,而不刪除用戶。即使你撤銷了所有權限,在user表中的用戶記錄依然保留,這意味着用戶仍然可以連接服務器。要完全刪除一個用戶,你必須用一條Delete語句明確從user表中刪除用戶記錄


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM