• 朱晓峰
    置顶
    2021-05-20
    你好,我是朱晓峰,下面我就来公布一下上节课思考题的答案: 上节课,我们学习了触发器。下面是思考题的答案: DELIMITER // CREATE TRIGGER demo.upd_importdetails AFTER UPDATE ON demo.importdetails FOR EACH ROW BEGIN UPDATE demo.importhead SET quantity = IFNULL(quantity,0) - OLD.quantity + NEW.quantity, importvalue = IFNULL(importvalue,0) - OLD.importvalue + NEW.importvalue WHERE listnumber = NEW.listnumber; END // DELIMITER ;
    共 1 条评论
    1
  • giteebravo
    2021-04-21
    有一点要注意,在使用 Windows + SQL Server 技术栈时,不要把操作系统的用户等同于数据库的用户。

    作者回复: 是的

    共 2 条评论
    4
  • giteebravo
    2021-04-20
    工作中负责的一个项目,对数据库的访问控制非常严格,屡受其害。 MySQL 的权限控制感觉非常灵活,下个版本安排上。

    作者回复: 好的

    
    2
  • lesserror
    2021-04-20
    既然老师指出了这个「坑」,那我必须要记录下来了。 权限这块儿的知识点,之前只是了解,实际开发中没太把权限的控制放在数据库用户上面去做。今天这节,补足了我这块之前模糊的理解。 MySQL 8.0开始支持创建权限集合的角色,用来集中管理拥有同一批权限的用户了。

    作者回复: 是的

    
    1
  • SharpBB
    2022-02-12
    给大家总结下: 1.操作权限 创建角色 CREATE ROLE 角色名; CREATE ROLE 'manager'@'localhost'; 不写主机名 默认是通配符% 可以从任何主机登录 角色授权 GRANT 权限 ON 表名 TO 角色名; GRANT SELECT,INSERT,DELETE,UPDATE ON demo.user TO 'manager'; 查看角色权限 SHOW GRANTS FOR 'manager'; 删除角色 DROP ROLE 角色名称; 2.操作用户 创建用户 CREATE USER 用户名 [IDENTIFIED BY 密码]; create user bb identify by 123; 给用户授权 直接授权 GRANT 角色名称 TO 用户名称; 通过角色授权 GRANT 权限 ON 表名 TO 用户名; 查看用户权限 SHOW GRANTS FOR 用户名; 删除用户 DROP USER 用户名; 3.注意点 mysql创建角色后 默认是没有激活的 需要激活 SET global activate_all_roles_on_login=ON; mysql8开始才支持角色
    展开

    作者回复: 好的

    
    
  • Ironhide
    2021-05-22
    请教老师,某个特定角色是否被激活的状态如何查询呢?

    作者回复: 可以用CURRENT_ROLE()函数,查看当前会话中处于激活状态的角色

    
    
  • floating
    2021-04-21
    -- 创建财务角色 CREATE ROLE 'accountant’; -- 授予财务角色对商品信息表、盘点表有只读的权限 GRANT SELECT ON demo.goodsmaster TO 'accountant'; GRANT SELECT ON demo.invcount TO 'accountant’; -- 授予财务角色对应付账款表有增删改查的权限 GRANT SELECT,INSERT,DELETE,UPDATE ON demo.invcount TO 'accountant'; -- 创建lisi用户 CREATE USER 'lisi' IDENTIFIED BY 'mysql'; -- 授予lisi的财务角色 GRANT 'accountant' TO 'lisi’; -- 激活所有角色登录权限 SET global activate_all_roles_on_login=ON;

    作者回复: 请参考思考题答案

    
    
  • SevenMonths
    2021-09-09
    补充: 撤销角色某个权限: REVOKE 权限 ON 表名 FROM 角色名; 撤销某个用户角色: REVOKE 角色名 FROM 用户名; 修改密码相关后执行: FLUSH PRIVILEGES;­【刷新MySQL的系统权限相关表】 -- 创建角色 CREATE ROLE ’test_role‘; -- 删除角色 DROP ROLE 'test_role'; -- 给角色赋予权限: GRANT SELECT,UPDATE ON demo.test_table TO 'test_role'; -- 撤销角色某个权限 REVOKE INSERT ON demo.test_table FROM 'test_role'; -- 创建用户 CREATE USER 'test_user'; -- 删除用户 DROP USER 'test_user'; -- 给用户授权角色 GRANT 'test_role' TO 'test_user'; -- 撤销用户的角色 REVOKE 'test_role' FROM 'test_user';
    共 1 条评论
    7
  • Season Zhang—凯程
    2023-09-01 来自广东
    SET global activate_all_roles_on_login=ON; 显示【SQL 錯誤 (1193):Unknown system variable 'activate_all_roles_on_login' */】
    
    
  • Ru
    2023-06-10 来自陕西
    可不可以理解角色就是为了快速给用户赋权?
    
    