2.3 quan ly truy cap
TRANSCRIPT
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
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
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 %
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;
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
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
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
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;
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
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: ** )
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
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()
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