1、首先打开终端窗口。mysql -uroot -p进入mysql。
2、进入数据库,然后查看已有的表格,以免名字重复。
3、创建第一个表格,插入数据。
4、创建第二表格,插入数据。
5、创建第三个表格,并且和第一第二个表格关联。
6、INSERT INTO zoo VALUES(1, 1, 2)INSERT INTO zoo VALUES(1, 2, 1)这个时候就能够把他们直接的数据互相关联删除了。比如dog的1和cat的2。
角色一直存在各个数据库中,比如 SQL Server、Oracle 等,MySQL 自从版本 8.0 release,引入了角色这个概念。
角色的概念
角色就是一组针对各种数据库权限的集合。比如,把一个角色分配给一个用户,那这个用户就拥有了这个角色包含的所有权限。一个角色可以分配给多个用户,另外一个用户也可以拥有多个角色,两者是多对多的关系。不过 MySQL 角色目前还没有提供类似于其他数据库的系统预分配的角色。比如某些数据库的 db_owner、 db_datareader 、 db_datawriter 等等。那接下来我分几个方面,来示例说明角色的使用以及相关注意事项。
示例 1:一个完整角色的授予步骤
用管理员创建三个角色:db_owner, db_datareader, db_datawriter
mysql>create role db_owner,db_datareader,db_datawriter
Query OK, 0 rows affected (0.02 sec)
mysql>grant all on ytt_new.* to db_owner
Query OK, 0 rows affected (0.01 sec)
mysql>grant select on ytt_new.* to db_datareader
Query OK, 0 rows affected (0.01 sec)
mysql>grant insert,delete,update on ytt_new.* to db_datawriter
Query OK, 0 rows affected (0.01 sec)
创建三个普通用户,分别为 ytt1、ytt2、ytt3。mysql>create user ytt1 identified by 'ytt',ytt2 identified by 'ytt',ytt3 identified by 'ytt'Query OK, 0 rows affected (0.01 sec)分别授予这三个用户对应的角色。
-- 授权角色
mysql>grant db_owner to ytt1
Query OK, 0 rows affected (0.02 sec)
-- 激活角色
mysql>set default role db_owner to ytt1
Query OK, 0 rows affected (0.00 sec)
mysql>grant db_datareader to ytt2
Query OK, 0 rows affected (0.01 sec)
mysql>set default role db_datareader to ytt2
Query OK, 0 rows affected (0.01 sec)
mysql>grant db_datawriter to ytt3
Query OK, 0 rows affected (0.01 sec)
mysql>set default role db_datawriter to ytt3
Query OK, 0 rows affected (0.01 sec)
以上是角色授予的一套完整步骤。那上面有点非常规的地方是激活角色这个步骤。MySQL 角色在创建之初默认是没有激活的,也就是说创建角色,并且给一个用户特定的角色,这个用户其实并不能直接使用这个角色,除非激活了才可以。示例 2:一个用户可以拥有多个角色
-- 用管理员登录并且创建用户
mysql>create user ytt4 identified by 'ytt'
Query OK, 0 rows affected (0.00 sec)
-- 把之前的三个角色都分配给用户ytt4.
mysql>grant db_owner,db_datareader,db_datawriter to ytt4
Query OK, 0 rows affected (0.01 sec)
-- 激活用户ytt4的所有角色.
mysql>set default role all to ytt4
Query OK, 0 rows affected (0.02 sec)
-- ytt4 用户登录
root@ytt-pc:/var/lib/mysql# mysql -uytt4 -pytt -P3304 -hytt-pc
...
-- 查看当前角色列表
mysql>select current_role()
+--------------------------------------------------------+
| current_role() |
+--------------------------------------------------------+
| `db_datareader`@`%`,`db_datawriter`@`%`,`db_owner`@`%` |
+--------------------------------------------------------+
1 row in set (0.00 sec)
-- 简单创建一张表并且插入记录, 检索记录,完了删掉这张表
mysql>use ytt_new
Database changed
mysql>create table t11(id int)
Query OK, 0 rows affected (0.05 sec)
mysql>insert into t11 values (1)
Query OK, 1 row affected (0.02 sec)
mysql>select * from t11
+------+
| id |
+------+
| 1 |
+------+
1 row in set (0.00 sec)
mysql>drop table t11
Query OK, 0 rows affected (0.04 sec)
示例 3:用户在当前 session 里角色互换其实意思是说,用户连接到 MySQL 服务器后,可以切换当前的角色列表,比如由 db_owner 切换到 db_datareader。
-- 还是之前的用户ytt4, 切换到db_datareader
mysql>set role db_datareader
Query OK, 0 rows affected (0.00 sec)
mysql>select current_role()
+---------------------+
| current_role() |
+---------------------+
| `db_datareader`@`%` |
+---------------------+
1 row in set (0.00 sec)
-- 切换后,没有权限创建表
mysql>create table t11(id int)
ERROR 1142 (42000): CREATE command denied to user 'ytt4'@'ytt-pc' for table 't11'
-- 切换到 db_owner,恢复所有权限。
mysql>set role db_owner
Query OK, 0 rows affected (0.00 sec)
mysql>create table t11(id int)
Query OK, 0 rows affected (0.04 sec)
示例 4:关于角色的两个参数
activate_all_roles_on_login:是否在连接 MySQL 服务时自动激活角色mandatory_roles:强制所有用户默认角色-- 用管理员连接MySQL,
-- 设置默认激活角色
mysql>set global activate_all_roles_on_login=on
Query OK, 0 rows affected (0.00 sec)
-- 设置强制给所有用户赋予角色db_datareader
mysql>set global mandatory_roles='db_datareader'
Query OK, 0 rows affected (0.00 sec)
-- 创建用户ytt7.
mysql>create user ytt7
Query OK, 0 rows affected (0.01 sec)
-- 用 ytt7登录数据库
root@ytt-pc:/var/lib/mysql# mysql -uytt7 -P3304 -hytt-pc
...
mysql>show grants
+-------------------------------------------+
| Grants for ytt7@% |
+-------------------------------------------+
| GRANT USAGE ON *.* TO `ytt7`@`%` |
| GRANT SELECT ON `ytt_new`.* TO `ytt7`@`%` |
| GRANT `db_datareader`@`%` TO `ytt7`@`%` |
+-------------------------------------------+
3 rows in set (0.00 sec)
示例 5 :create role 和 create user 都有创建角色权限,两者有啥区别?
以下分别创建两个用户 ytt8、ytt9,一个给 create role,一个给 create user 权限。-- 管理员登录,创建用户ytt8,ytt9.
mysql>create user ytt8,ytt9
Query OK, 0 rows affected (0.01 sec)
mysql>grant create role on *.* to ytt8
Query OK, 0 rows affected (0.02 sec)
mysql>grant create user on *.* to ytt9
Query OK, 0 rows affected (0.01 sec)
-- 用ytt8 登录,
root@ytt-pc:/var/lib/mysql# mysql -uytt8 -P3304 -hytt-pc
...
mysql>create role db_test
Query OK, 0 rows affected (0.02 sec)
-- 可以创建角色,但是不能创建用户
mysql>create user ytt10
ERROR 1227 (42000): Access deniedyou need (at least one of) the CREATE USER privilege(s) for this operation
mysql>\q
Bye
-- 用ytt9 登录
root@ytt-pc:/var/lib/mysql# mysql -uytt9 -P3304 -hytt-pc
...
-- 角色和用户都能创建
mysql>create role db_test2
Query OK, 0 rows affected (0.02 sec)
mysql>create user ytt10
Query OK, 0 rows affected (0.01 sec)
mysql>\q
Bye
那这里其实看到 create user 包含了 create role,create user 即可以创建用户,也可以创建角色。示例 6:MySQL 用户也可以当角色来用
-- 用管理员登录,创建用户ytt11,ytt12.
mysql>create user ytt11,ytt12
Query OK, 0 rows affected (0.01 sec)
mysql>grant select on ytt_new.* to ytt11
Query OK, 0 rows affected (0.01 sec)
-- 把ytt11普通用户的权限授予给ytt12
mysql>grant ytt11 to ytt12
Query OK, 0 rows affected (0.01 sec)
-- 来查看 ytt12的权限,可以看到拥有了ytt11的权限
mysql>show grants for ytt12
+-----------------------------------+
| Grants for ytt12@% |
+-----------------------------------+
| GRANT USAGE ON *.* TO `ytt12`@`%` |
| GRANT `ytt11`@`%` TO `ytt12`@`%` |
+-----------------------------------+
2 rows in set (0.00 sec)
-- 在细化点,看看ytt12拥有哪些具体的权限
mysql>show grants for ytt12 using ytt11
+--------------------------------------------+
| Grants for ytt12@% |
+--------------------------------------------+
| GRANT USAGE ON *.* TO `ytt12`@`%` |
| GRANT SELECT ON `ytt_new`.* TO `ytt12`@`%` |
| GRANT `ytt11`@`%` TO `ytt12`@`%` |
+--------------------------------------------+
3 rows in set (0.00 sec)
示例 7:角色的撤销
角色撤销和之前权限撤销类似。要么 revoke,要么删除角色,那这个角色会从所有拥有它的用户上移除。-- 用管理员登录,移除ytt2的角色
mysql>revoke db_datareader from ytt2
Query OK, 0 rows affected (0.01 sec)
-- 删除所有角色
mysql>drop role db_owner,db_datareader,db_datawriter
Query OK, 0 rows affected (0.01 sec)
-- 对应的角色也从ytt1上移除掉了
mysql>show grants for ytt1
+----------------------------------+
| Grants for ytt1@% |
+----------------------------------+
| GRANT USAGE ON *.* TO `ytt1`@`%` |
+----------------------------------+
1 row in set (0.00 sec)
至此,我分了 7 个目录说明了角色在各个方面的使用以及注意事项,希望对大家有帮助。
关于JavaWeb增删改查的简单总结 原创2020-04-25 13:14:49
走到天涯海角
码龄4年
关注
增删改查中最简单的功能是删除,通过Id来删除单表或者多表都是可以的。
增删改查中最重要的功能是查询,因为不仅仅是单表查询、连表查询需要用到查询,新增前和修改前也要使用到查询。
查询遇到的业务比如:
1.登录:通过查询用户名和密码来找出用户,密码可以重复,但是用户名必须唯一,否则没办法找出单个用户。
(重要) 只要查询的字段是唯一的,都可以通过这个字段来查询出对应的单个对象或者集合。
什么字段是唯一的呢?
如:用户名必须唯一,文件名必须唯一,主键ID必须唯一等等,一时半会想不起来。
新增前,通过查询获得如:下拉框中的数据等
在新增时,通过获取下拉框的值或者输入框的值,就可以保存新增。
新增也会遇到循环插入的情况,如新增角色和修改角色,要循环插入数据到角色菜单关系表中。
循环插入数据的做法,我是用过两种方法,一种方法是使用c3p0,另一种是使用mybatis的foreach标签
修改前,通过查询,获得如:用户的信息,然后放到修改输入框,提高用户的使用体验。
修改时,通过隐藏区的Id,和输入框或者下拉框中的值,来进行保存修改。
文章知识点与官方知识档案匹配
Java技能树首页概览
92024 人正在系统学习中
打开CSDN APP,看更多技术内容
JavaWeb实现简单对数据库的增删改查_向晚而生的博客_web实现数...
数据库:MySQL 连接池:Druid连接池 Github仓库地址:点我 jar包下载:点我!提取码:y4ef 参考:Javaweb实现增删改查 *** 作 *** 作 用JavaWeb部分知识实现对数据库的增删改查 只展示Student和Teacher的相关代码 一、效果图 二、数据库实现 1. ...
继续访问
Web对数据库的增删改查(servlet+jsp+javaBean增删改查)
1.开始之前的准备(servlet+jsp+javaBean增删改查) jsp:页面的请求和展示 在前台主要学了jsp进行页面的请求和展示 java后台 mysql数据库 学习了java如何进行数据库增删改查 JDBC重构Dao Dao进行sql语句 将数据库的获取结果响应到页面上 ...
继续访问
最新发布 javaweb极简登录注册增删改查
javaweb极简登录注册增删改查
继续访问
简单的JavaWeb项目,基本的增删改查和分页查询等功能。
简单的JavaWeb项目,刘意老师整理,拥有登录,添加,删除,修改,分页查询,删除选中,复杂分页查询功能。
JavaWeb阶段案例--简易版管理图书系统(增删改查)
超详细JavaWeb阶段项目 --图书管理系统 -- 连接数据库在网页上实现图书的增删改查
继续访问
笔记--MySQL相关 *** 作
一 登录数据库 1 用户无密码: mysql -uroot -p mysql->2 用户有密码: MySQL -root -p[passwd] mysql->二 创建数据库: 查询: mysql>show databases+--------------------+ | Database ...
继续访问
Javaweb--通过网页实现对数据库的增删查改
文章目录Javaweb--通过网页实现对数据库的增删查改1、功能需求2、技术选型2、最终效果图3、数据库准备4、前端开发5、后端开发 Javaweb–通过网页实现对数据库的增删查改 通常在写一些后台管理系统的时候,一定会有关于数据表格的增删查改的功能实现。最近也是闲来无事,做了这个小案例,希望能帮到有写这方面需求的朋友们。 1、功能需求 这次以单个的员工数据表为例,实现以下功能需求: 1、能够正常从数据库中读取相应数据。 2、设置分页,能够通过点击页码,进行数据更新,同时支持输入页码更新数据
继续访问
让我们在网页中实现数据库的增删改查~
目录主要思路首先让我们链接自己的数据库 index.js对数据库设定一些用户规则 user.js做一个添加数据的静态网页 add.html做一个主页面 list.html最最最主要的js代码自我激励 主要思路 搭建网站服务器,实现客户端与服务器端的通信 连接数据库, 创建用户集合, 向集合中插入文档 当用户访问 /list时,将所有用户信息查询出来 1.实现路由功能 1.呈现用户列表页面 1. 再点击修改按钮的时 将用户ID传递到当前页面 2. 从数据库中查询当前用户信息 将用户信息展示到页面中 2.从数据
继续访问
JavaWeb 增删改查快速开发总结
JavaWeb增删改查基本都是那一套,其中最繁琐 变动的便是围绕SQL语句、Servlet来展开,下面是我对这些左到一个小总结,希望能对您有所帮助首先项目搭建好之后就是最关键的SQL语句 Servlet代码 Servlet方法 然后是前端methods()方法 删除和批量删除(这里用element做了个删除提示)...
继续访问
Java web阶段学习总结(华清远见)
经过web前端的学习之后,我们开启了Java web后端的学习。学习一样新的东西首先要了解它的原理,以及所要具备的一些条件。对于Servlet 的开发步骤一般有:新建一个Java web项目工程 -->创建servlet类继承Http Servlet,重写service方法 -->在web.xml中做地址映射 -->打包 -->部署 -->启动容器。这样就可以在浏览器中访问web程序。了解步骤之后就可以动手敲了。
继续访问
javaWeb反思与总结
javaWeb的回顾总结
继续访问
javaweb mysql增删改查_超详细的JavaWeb用户的增删改查实现总结
前言本文是基于单体架构实现的角色的增删改查的功能。前台使用Bootstrap+Ajax+Jsp , 后端使用Spring+SpringMvc+MyBatis进行开发,相信使用过这些技术的小伙伴应该很好的理解以下的内容,也希望看了这篇文章小伙伴们有所收获。准备工作后端技术技术说明官网SpringSpring是一个轻量级控制反转(IoC)和面向切面(AOP)的容器框架。SpringMvcMVC框架ht...
继续访问
Javaee增删改查学习心得
这是我学习完Javaee增删改查后的一些经验心得,在这里记录加深一下印象。 1、创建一个web项目,在左侧项目区域右键创建新的web项目,如果没找到选择最下方other,搜索dy,点击创建web项目。 2、导入相应的jar包,oracle数据库导入oracle的jdbc连接jar包,mysql数据库导入mysql的jdbc连接jar包。在lib文件夹下导入。如需j导入s或css的jar包则最好新建...
继续访问
MySQL学习笔记(一) 下载安装+基本增删改查 + 事务
mysql笔记,内容包含下载安装,DDL,DML,DQL,DCL语法,约束,多表查询等
继续访问
简易的JavaWeb实现增删查改(附数据库)
一、概述 时隔一年,重回博客,应许多初学的同学要求,实现简单的增删查改功能的小程序,具体请详看下面的截图~~~ 二、开发环境 语言:JavaWeb、JSP、CSS 数据库:MySQL 开发工具:Eclipse 三、部分截图展示 四、代码片段 @Override public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletExceptio...
继续访问
PHP网页设计实现增删改查,包含报告实训内容
运用PHP技术和MySQL数据库实现对一个数据库表格的 *** 作。 实验环境 1.DreamweaverCS6软件2.phpStudy2018软件(包含Web服务器Apache、数据库服务器MySQL、PHP语言引擎) 实验内容安排 1.选择学习或生活环境中的一个数据表格并构造符合SQL格式的初始数据2.通过浏览器对这个数据表格进行查找、显示、修改、增添、删除5项 *** 作...
继续访问
增删查改
增删查改 增删查改在所有的语言代码中都是最基础和重要的,增删查改在代码中担任着不可缺少的一部分,整个代码项目都是靠着增删查改。“增删查改”就如同字面意思一样,增:新增(insert),删:删除(delete),查:查询(select),改:修改(update),代码做出来的东西大部分都是靠着“增删查改”来运行的! 先说的就是增:新增(insert),最简单的意思就是用原来的数据来新增一条或多条新的数据,这就是新增。首先要有一个写一个模态框才能在模...
继续访问
JavaWeb实现简单对数据库的增删改查
通过JavaWeb实现简单的对数据库的增删改查
继续访问
热门推荐 java web基本增删改查 *** 作
这是一个结合mysql数据库,java后端和jsp页面的综合案例: 声明:学习本文时,需要有一定的基础,例如jsp,jquery,servlet,Java,jdbc等基础,如果不懂的希望从基础学起,加油! 在代码中有对应的注释说明,所以我就直接上代码了 大致流程是: 首先访问到servlet层,在servlet层里调用StudentRepository的各个方法,然后展示到jsp页面中。所以浏览器访问路径是servlet层里StudentServlet中@WebServlet("/student")的路径(
继续访问
关于Javaweb课程设计的心得体会.docx
关于Javaweb课程设计的心得体会.docx关于Javaweb课程设计的心得体会.docx关于Javaweb课程设计的心得体会.docx关于Javaweb课程设计的心得体会.docx关于Javaweb课程设计的心得体会.docx关于Javaweb课程设计的心得体会.docx关于Javaweb课程设计的心得体会.docx关于Javaweb课程设计的心得体会.docx关于Javaweb课程设计的心得体会.docx
记录一下springboot+mybatis实现增删改查的基本流程和心得
记录一下springboot+mybatis实现增删改查的基本流程和心得 springboot是一个spring家族中举足轻重的那一个,也是在javaweb实际开发过程经常使用到的一个框架,熟练使用springboot是在实际工作中非常重要的。(在一开始中我认为要先学会如何使用,而不是深究底层原理和代码,毕竟一般的java开发工作中只会项目经理只会不停给你分配增删改查的功能任务,当然,随着开发经验的不断提升,只止步于增删改查会很难得到工作地位提升的机会) 第一步:导入pom.xml依赖 <!--spr
继续访问
java的开发环境和运行环境,年薪60W必备
四面阿里 面试岗位是研发工程师,直接找蚂蚁金服的大佬进行内推,参与了阿里巴巴中间件部门的提前批面试,一共经历了四次面试,拿到了口头offer。 一面: 自我介绍 项目中做了什么,难点呢。 Java的线程池说一下,各个参数的作用,如何进行的。 Redis讲一下 分布式系统的全局id如何实现。用zookeeper如何实现的呢,机器号+时间戳即可。 分布式锁的方案,redis和zookeeper那个好,如果是集群部署,高并发情况下哪个性能更好。 kafka了解么,了解哪些消息队列。 想做业务还是研究。 然后出了
继续访问
web增删改查数据库实验总结
java
写评论
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)