Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

cách chỉ cấp đặc quyền MySQL cho một hàng cụ thể

Không có một hàng nào nhưng một dạng xem có chứa một hàng, đến lượt nó, sẽ cập nhật bảng thực thực tế.

Điều này có thể được thực hiện thông qua chế độ xem bảng cụ thể cho mỗi học sinh (vâng, nó sẽ là một cấu trúc DB lộn xộn). Cấp quyền truy cập vào dạng xem cho người dùng này chỉ cho phép chọn / chỉ cập nhật và khóa chính sẽ không thể cập nhật được. Bảng chính sẽ tự cập nhật khi chế độ xem được cập nhật.

CREATE SCHEMA `example` ;

CREATE TABLE `example`.`student` (
      `id` INT NOT NULL,
      `name` VARCHAR(45) NULL,
      `email` VARCHAR(45) NULL,
      PRIMARY KEY (`id`));

INSERT INTO `example`.`student` (`id`, `name`, `email`) VALUES ('1', 'bob', '[email protected]');


USE `example`;
CREATE 
     OR REPLACE SQL SECURITY DEFINER
VIEW `student_1` AS
    SELECT 
        `student`.`id` AS `id`,
        `student`.`name` AS `name`,
        `student`.`email` AS `email`
    FROM
        `student`
    WHERE
        (`student`.`id` = '1');

CREATE USER 'student_1_user'@'localhost' IDENTIFIED BY 'user_password';

    GRANT SELECT,UPDATE ON example.student_1 TO [email protected] IDENTIFIED BY 'user_password';

UPDATE example.student_1 SET email='[email protected]'; // note no primary key needed or allowed



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. trừ 1 từ số trong một hàng Truy vấn SQL

  2. Làm cách nào để tạo khóa ngoại cũng là khóa chính trong MySQL?

  3. MySQL - cập nhật tất cả các bản ghi để khớp với giá trị tối đa trong nhóm

  4. Lỗi truy vấn SQL MySQL trong WordPress trong lớp WPDB

  5. mysql, ifnull so với kết hợp, cái nào nhanh hơn?