2.3 quan ly truy cap

13
[email protected] Hệ quản trị cơ sở dữ liệu Hệ quản trị cơ sở dữ liệu Dư Phương Hạnh Bộ môn Hệ thống thông tin Khoa CNTT, trường Đại học Công nghệ Đại học Quốc gia Hanoi Quản lý truy cập Quản lý truy cập

Upload: tran-thanh

Post on 18-Jun-2015

238 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: 2.3 quan ly truy cap

[email protected]

Hệ quản trị cơ sở dữ liệuHệ quản trị cơ sở dữ liệu

Dư Phương HạnhBộ môn Hệ thống thông tin

Khoa CNTT, trường Đại học Công

nghệ

Đại học Quốc gia Hanoi

Quản lý truy cậpQuản lý truy cập

Page 2: 2.3 quan ly truy cap

Hệ quản trị CSDL @ BM HTTT2

2 bước quản lý truy cập

Authentication (định danh): Tại mức đầu tiên này, người sử dụng được định danh xem có quyền truy cập tới MySQL server

Authorization (định quyền): Xem tiến trình người dùng có quyền thích hợp để thực thi truy vấn

Page 3: 2.3 quan ly truy cap

Hệ quản trị CSDL @ BM HTTT3

Lệnh tạo người dùng

CREATE USER user [IDENTIFIED BY [PASSWORD] 'password'] [, user [IDENTIFIED BY [PASSWORD] 'password']] ...

Ví dụ:– CREATE USER demo@localhost IDENTIFIED BY ‘demo';

– Câu lệnh trên sẽ tạo người dùng demo, kết nối tới DB từ localhost

– Nếu cho phép user kết nối từ bất cứ địa chỉ nào, sử dụng %

Page 4: 2.3 quan ly truy cap

Hệ quản trị CSDL @ BM HTTT4

Gán đặc quyền cho người dùng

GRANT ALL ON classicmodels.* TO demo [WITH GRANT OPTION ];

GRANT SELECT ON classicmodels.products TO guest;

WITH GRANT OPTION: người dùng có quyền gán quyền đó cho người dùng khác

Hiển thị các quyền được gán cho người dùng– SHOW GRANTS FOR username;

Page 5: 2.3 quan ly truy cap

Hệ quản trị CSDL @ BM HTTT5

Các mức đặc quyền và Nơi MySQL lưu thông tin truy cập

Phạm vi Bảng Sử dụng

Global user MySQL sử dụng bảng này để chấp nhận hoặc từ

chối kết nối bởi một yêu cầu

Database DbMySQL sử dụng bảng này để quyết định DB mà

người dùng có thể truy cập

Table tables_priv Chứa các đặc quyền ở mức bảng

Column columns_priv Chức các đặc quyền ở mức cột

Routine procs_priv Chứa đặc quyền liên quan đến hàm và thủ tục

Page 6: 2.3 quan ly truy cap

Hệ quản trị CSDL @ BM HTTT6

Quá trình xác định quyền

Để xác định người sử dụng có thể thực hiện một yêu cầu, MySQL nhìn các đặc quyền ở mức cao nhất trước (Global)

Nếu quyền yêu cầu không được gán ở mức này, MySQL sẽ nhìn các cho phép ở mức tiếp theo phía dưới

Nếu đặc quyền được tìm thấy ở bất cứ mức nào, yêu cầu sẽ được cho phép

Page 7: 2.3 quan ly truy cap

Hệ quản trị CSDL @ BM HTTT7

Ví dụ Bảng user

Cột Kiểu dữ liệu Nullable Giá trị ngầm định

Host char(60) binary No No default

User char(16) binary No No default

Password char(41) binary No No default

Select_priv Insert_priv Update_priv ... Grant_priv ... Create_routine_priv ... Trigger_priv

enum('N','Y') No N

Page 8: 2.3 quan ly truy cap

Hệ quản trị CSDL @ BM HTTT8

Xóa người dùng-Loại bỏ đặc quyền DROP USER user [, user]... REVOKE ALL privileges ON classicmodels.* FROM

demo;

Page 9: 2.3 quan ly truy cap

Hệ quản trị CSDL @ BM HTTT9

Khi bảng gán quyền được cập nhật? Các bảng gán quyền (grant) trong bộ nhớ được cập

nhật khi:– Sau lệnh GRANT, REVOKE, CREATE USER, hoặc

DROP USER– Sau lệnh FLUSH PRIVILEGES

Page 10: 2.3 quan ly truy cap

Hệ quản trị CSDL @ BM HTTT10

Tài khoản MySQL

Bảng mysql.user chứa các tài khoản người sử dụng và các quyền truy cập

Để kiểm tra các tài khoản và xem mật khẩu có trống khôngmysql> SELECT User, Host, Password FROM mysql.user;

(Chú ý: cần đăng nhập root tới MySQL server trước, sử dụng lệnh

shell> mysql -h 127.0.0.1 -u root -p

Enter password: ** )

Page 11: 2.3 quan ly truy cap

Hệ quản trị CSDL @ BM HTTT11

Sửa đổi tài khoản MySQL

Có 3 cách thiết lập tài khoản root– Sử dụng câu lệnh SET PASSWORD – Sử dụng câu lệnh UPDATE – Sử dụng chương trình khách mysqladmin

Page 12: 2.3 quan ly truy cap

Hệ quản trị CSDL @ BM HTTT12

Sửa đổi tài khoản MySQL

1. mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpwd');

2. mysql> SET PASSWORD FOR 'root'@'127.0.0.1' = PASSWORD('newpwd');

3. mysql> UPDATE mysql.user SET Password = PASSWORD('newpwd') WHERE User = 'root';Nếu sử dụng lệnh update cần thực hiện thêm lệnh

sau:mysql> FLUSH PRIVILEGES; Với lệnh FLUSH server sẽ đọc lại các bảng phân quyền

Mật khẩu được mã hóa sử dụng hàm PASSWORD()

Page 13: 2.3 quan ly truy cap

Hệ quản trị CSDL @ BM HTTT13

Tài liệu tham khảo

http://www.mysql.com http://dev.mysql.com/doc/refman/5.5/en/ http://www.mysqltutorial.org/mysql-

administration.aspx