在 SQL 中实现行级安全控制可以通过使用 RESTRICT 关键字来限制用户对特定行的访问权限。具体步骤如下:
employee 表。CREATE TABLE employee ( id INT PRIMARY KEY, name VARCHAR(50), department VARCHAR(50), manager_id INT);在表中插入一些示例数据。INSERT INTO employee (id, name, department, manager_id)VALUES (1, 'Alice', 'HR', NULL), (2, 'Bob', 'IT', 1), (3, 'Charlie', 'Finance', 1);创建一个具有行级安全控制的角色,例如 hr_manager 角色。CREATE ROLE hr_manager;授予 hr_manager 角色访问 employee 表的权限。GRANT SELECT ON employee TO hr_manager;使用 RESTRICT 关键字来限制 hr_manager 角色只能查看属于自己部门的员工数据。CREATE POLICY department_policy ON employee FOR SELECT USING (department = current_user);现在,只有属于 HR 部门的用户才能查看属于 HR 部门的员工数据,其他部门的用户无法查看 HR 部门的员工数据。通过这种方式,可以实现行级安全控制。


