2012-03-20 30 views
17

Làm cách nào để hạn chế user_account trong cơ sở dữ liệu MySQL thành một bảng cụ thể. Ví dụ:Làm cách nào để hạn chế người dùng MySQL vào một bảng cụ thể

UserName: RestrictedUser 
DatabaseName: db_Payroll 
TableName: 
    tb_Employees 
    tb_Users 
    tb_Payroll_YYMMDD 
    tb_Payroll_Processed 

Tôi muốn hạn chế "RestrictedUser" để tb_Userstb_Employees chỉ và phần còn lại của bảng db_Payroll sẽ được tạo để sử dụng trong tương lai được cấp có thể tiếp cận.

Trả lời

27

Giả sử người dùng đã không có đặc quyền hiện tại, bạn có thể làm như sau

GRANT SELECT, INSERT, DELETE ON db_Payroll.tb_Users TO [email protected]'%' 
GRANT SELECT, INSERT, DELETE ON db_Payroll.tb_Employees TO [email protected]'%' 

Tùy thuộc vào chính xác đặc quyền bạn muốn cấp quyền cho người dùng, bạn có thể thay đổi SELECT, INSERT, DELETE đến cái gì khác, ví dụ ALL PRIVILEGES.

Sau đó, hãy nhớ xóa các đặc quyền để chúng trở nên hiệu quả.

FLUSH PRIVILEGES; 
+3

Bạn không cần phải 'FLUSH PRIVILEGES' sau khi sử dụng 'GRANT' hoặc bất kỳ câu lệnh sửa đổi tài khoản nào khác, chỉ khi bạn đã sửa đổi các bảng trợ cấp trực tiếp với DML. Xem http://dev.mysql.com/doc/refman/5.5/en/privilege-changes.html –

4

Bạn có thể cấp quyền truy cập vào các bảng cá nhân bằng cách chạy:

GRANT ALL ON db_Payroll.tb_Users to [email protected]; 

Và tương tự cho các bảng khác. Sử dụng danh sách các hoạt động thay vì ALL nếu thích hợp.

Bạn không thể cấp quyền truy cập cho các bảng riêng lẻ chưa tồn tại mà không cấp quyền truy cập vào tất cả các bảng.

+0

"Bạn không thể cấp quyền truy cập cho các bảng riêng lẻ chưa tồn tại mà không cấp quyền truy cập vào tất cả các bảng". đó là vấn đề chính của tôi, db_Payroll được sử dụng bởi ứng dụng biên chế, tôi tạo một webinterface bằng cách sử dụng một php và tôi muốn bảo đảm kết nối mà không cần viết các thiết lập kết nối được sử dụng bởi ứng dụng biên chế. – aintgel

+5

Vì vậy, hãy quyết định bảng của bạn sẽ là gì và cấp quyền truy cập cho những bảng thích hợp. Nếu bạn đang nghĩ đến một thiết kế có liên quan đến việc tạo ra các bảng trong thời gian chạy, DỪNG! Đừng làm thế. – duskwuff

Các vấn đề liên quan