天天看點

SQL專欄——sql語句的基礎操作(八)使用者管理和授權

SQL專欄——sql語句的基礎操作(八)使用者管理和授權
SQL專欄——sql語句的基礎操作(八)使用者管理和授權

在資料庫中檢視使用者

use mysql;
show tables;
desc user;
select host,user from user;      
SQL專欄——sql語句的基礎操作(八)使用者管理和授權
SQL專欄——sql語句的基礎操作(八)使用者管理和授權

授權GRANT

SQL專欄——sql語句的基礎操作(八)使用者管理和授權
SQL專欄——sql語句的基礎操作(八)使用者管理和授權
SQL專欄——sql語句的基礎操作(八)使用者管理和授權
use emp;
use 
create USER  student@'localhost' identified bu '123qweASD'
grant all on school.* to 'student@localhost'      
SQL專欄——sql語句的基礎操作(八)使用者管理和授權

用例

儲存到bank.sql

SQL專欄——sql語句的基礎操作(八)使用者管理和授權

建表

create table userinfo(
customer_id int primary key,
customer_name varchar(60),
pid char(18),
telephone char(11),
address varchar(255),
)      
SQL專欄——sql語句的基礎操作(八)使用者管理和授權

建限制

create table card_info(

)      
SQL專欄——sql語句的基礎操作(八)使用者管理和授權
SQL專欄——sql語句的基礎操作(八)使用者管理和授權
SQL專欄——sql語句的基礎操作(八)使用者管理和授權
SQL專欄——sql語句的基礎操作(八)使用者管理和授權
SQL專欄——sql語句的基礎操作(八)使用者管理和授權

第一步

建立本地使用者teacher,密碼為123456,本地使用者student,無密碼

CREATE USER `teacher`@`localhost` IDENTIFIED BY '123qweASD!';
CREATE USER `student`@`localhost`;      

第二步

建立本地使用者xiaoming,密碼123456,賦予myschool資料庫中student表增加和查詢權限

/*-建立本地使用者xiaoming,密碼123456,賦予myschool資料庫中student表增加和查詢權限-*/
GRANT INSERT,SELECT ON myschool.student TO `xiaoming`@`localhost` 
IDENTIFIED BY '123456';

/*-為student@localhost使用者授予myschool資料庫中view_student視圖的查詢權限-*/
GRANT SELECT ON myschool.view_student TO `student`@`localhost`;      

第三步

使用賬戶登入

mysqladmin –u root –p password “1234”      

第四步

/*-當登入使用者為root時,使用SET指令将root密碼修改為“0000”,将teacher賬戶密碼修改為‘“8888”-*/
#修改目前登入賬戶密碼
SET PASSWORD = PASSWORD(“0000”); 
#修改其他使用者密碼
SET PASSWORD  FOR `teacher`@`localhost`= PASSWORD(“8888”);      

第五步

/*-删除本地student使用者-*/
DROP USER `student`@`localhost`;      

附:bank.sql

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,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,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,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,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);