用户权限

用户管理

创建普通用户

语法

CREATE USER `user@host` [IDENTIFIED'password'];

例子

create user `teacher`@`localhost` IDENTIFIED BY '123456';
create user `student`@`localhost`;

查看用户

use mysql;
select * from user;
  • %是允许远程访问的用户

创建用户并授权

  • GRANT语句可实现创建用户同时授权或为已存在的用户授权

案例

不存在的用户
grant insert,select on myschool.student to
`xiaoming`@`localhost` identified by '123456';
已存在用户
grant select on myschool.student
to `student`@`localhost`;

常用操作权限

  1. CREATE和DROP权限
  2. INSERT、DELETE、SELECT和UPDATE权限
  3. ALTER权限
如果授予所有权限,即为ALL
为所有数据库和表授权,权限范围可使用*.*

使用mysqladmin命令修改root账户密码

不登陆状态下

语法

mysqladmin -u 账户 -p password "新密码"

案例

mysqladmin -u xiaoming -p password "0000"

然后输入原始密码

登录状态下

注意

  • 只有超级管理员用户(如root用户)才能修改其他用户密码,如果是普通用户,可修改自己的密码

案例

更改自己密码
set password = password("8888");
更改其他账户密码(需要先登录root账户)
set password for teacher@localhost = password("8888");

删除用户

删除单个用户

drop user xiaoming@localhost;

删除多个用户

drop user teacher@localhost,student@localhost;

案例

#创建数据库
DROP DATABASE IF EXISTS `bankDB`;
CREATE DATABASE `bankDB`;

USE `bankDB`;

在这里插入图片描述

DROP TABLE IF EXISTS `userInfo`;
CREATE TABLE `userInfo`  #用户信息表
(
  `customerID` INT(4) PRIMARY KEY AUTO_INCREMENT COMMENT '用户编号',
  `customerName` CHAR(8) NOT NULL COMMENT '用户编号',
  `PID` CHAR(18) UNIQUE NOT NULL COMMENT '身份证号',
  `telephone` CHAR(20) NOT NULL COMMENT '手机号码',
  `address` VARCHAR(50) COMMENT '居住地址'
)ENGINE = INNODB,CHARSET=UTF8,COMMENT='用户表';

在这里插入图片描述

DROP TABLE IF EXISTS `cardInfo`;
CREATE TABLE `cardInfo`  #银行卡信息表
(
  `cardID`  CHAR(19) NOT NULL PRIMARY KEY COMMENT '卡号',
   `password` CHAR(6) NOT NULL DEFAULT '888888' COMMENT '密码',
  `curID`  VARCHAR(10) NOT NULL DEFAULT 'RMB' COMMENT '币种',
  `savingID` INT NOT NULL COMMENT '存款类型',
  `openDate`  TIMESTAMP NOT NULL COMMENT '开户日期' ,
  `openMoney`  DECIMAL(20,2) NOT NULL DEFAULT 1 COMMENT '开户金额' ,
  `balance`  DECIMAL(20,2) NOT NULL DEFAULT 1 COMMENT '余额',
  `IsReportLoss` BIT  NOT NULL  DEFAULT 0 COMMENT '是否挂失',
  `customerID` INT NOT NULL
) ENGINE = INNODB,CHARSET=UTF8,COMMENT='银行卡信息表';

在这里插入图片描述

DROP TABLE IF EXISTS `tradeInfo`;
CREATE TABLE `tradeInfo`  #交易信息表
(
  cardID  CHAR(16) NOT NULL COMMENT '卡号',
  tradeDate  TIMESTAMP NOT NULL  COMMENT '交易日期',
  tradeMoney  DECIMAL(20,2) NOT NULL COMMENT '实际交易金额',
  tradeType  CHAR(4) NOT NULL COMMENT '交易类型', 
  remark  TEXT COMMENT '备注'  
)ENGINE = INNODB,CHARSET=UTF8,COMMENT='交易信息表';

在这里插入图片描述

DROP TABLE IF EXISTS `deposit`;
CREATE TABLE `deposit`  #存款类型表
(
  savingID  INT(4)  AUTO_INCREMENT PRIMARY KEY,
  savingName  VARCHAR(20) NOT NULL,
  descrip VARCHAR(50)
)ENGINE = INNODB,CHARSET=UTF8,COMMENT='存款类型表';

/*--加约束--$*/

ALTER TABLE cardInfo     
   ADD CONSTRAINT  FK_customerID 
   FOREIGN KEY(customerID) 
   REFERENCES userInfo(customerID),
   ADD  CONSTRAINT  FK_savingID  
   FOREIGN KEY(savingID) 
   REFERENCES deposit(savingID);

ALTER TABLE tradeInfo
  ADD CONSTRAINT  FK_cardID  
  FOREIGN KEY(cardID) 
  REFERENCES cardInfo(cardID);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值