X

由于无法提供服务器的高昂费用,博客即将迁移到github pages...

点击右上的X可以临时关闭此框并阻止跳转^_^

现在带您过去 秒后跳转...

初探MongoDB安全之RBAC(基于角色的访问控制)

    写在开头的一段话:我是一名忠实的SQL玩家,虽说MySQL并没有达到精通的级别,但在日常使用中还是会经常出现“这个表要是NoSQL的话就好办多了”的想法。所以说,我认为无论是站在关系型数据库还是非关系性数据库的立场上,二者并不是相对立的,而且我觉得应该用“相辅相成”来形容二者的关系。

    通过在《MongoDB 教程|菜鸟教程》轻量级的了解了一下MongoDB的基础知识,我在自己电脑上安装并使用了这款NoSQL软件。很明显地,读别人的教程只能是迅速的、简单的和容易理解的。也正是这样,我发现了其中有一块并没有提及!那就是并没有说要登录数据库啊。
    (…继续阅读这篇文章…)

数据库系统的基本概念

    1. 数据(Data):数据是数据库中存储的基本对象,它有多种表现形式。数据是描述事物的符号记录,这些符号可以是文字、图形、声音和图像等。
    2. 数据库(DataBase,DB):数据库是一个长期存储在计算机内的,有组织的、可共享的、统一管理的数据集合。
    3. 数据库管理系统(DataBase Management,DBMS):数据库管理系统是为数据库的建立、使用和维护而配置的系统软件。
      1. 数据定义功能
      2. 数据操作功能
      3. 数据库的运行管理功能
      4. 数据库的建立和维护功能
    4. 数据库管理员(DataBase Administrator,DBA):数据库管理员是负责管理和维护数据库服务器的人员
      1. DBA应参与数据库和应用系统的设计
      2. DBA应参与决定数据库的存储结构和存取策略的工作
      3. DBA要负责定义数据的安全性要求和完整性要求
      4. DBA负责监视和控制数据库系统的运行以及系统的维护和数据恢复工作
      5. DBA负责数据库的改进和重组
    5. 数据库系统(Database System,DBS):数据库系统是指在计算机系统中引入数据库后的系统,一般由数据库、数据库管理系统、应用系统、数据库管理员和用户构成。

作业3-1(完成MYSQL操作)

    作业3-1要求

    第一步,创建数据库'XSGL': 
    create database XSGL;
    
    第二步,创建学生表'student': 
    create table student(
    Sno char(7) NOT NULL,
    Sname char(10) NOT NULL,
    Ssex enum('男','女') NULL,
    Sage tinyint(4) NULL,
    Sdept char(20) NULL default '计算机系',
    PRIMARY KEY(Sno)
    )engine=innodb default charset=utf8;
    
    第三步,插入数据:
    insert into student(Sno,Sname,Ssex,Sage,Sdept) values ('9512101','李勇','男','19','计算机系'),('9512102','刘晨','男','20','计算机系'),('9512103','王敏','女','20','计算机系'),('9521101','张立','男','22','信息系'),('9521102','吴兵','女','21','信息系'),('9521103','张海','男','20','信息系'),('9531101','钱小平','女','18','数学系'),('9531102','王大力','男','19','数学系');
    
    第四步,删除学号为'9531102'的记录:
    delete from student where Sno='9531102';
    
    第五步,将计算机系的学生年龄统一加'1':
    update student set Sage=Sage+1 where Sdept='计算机系';
    
    第六步,显示学生的学号和姓名两列,这两列分别起别名为“ID”和“NAME”, 要求只列出查询结果的前 5 条记录:
    select Sno as ID,Sname as NAME from student limit 5;
    
    第七步,查询信息系所有男同学的所有信息:
    select * from student where Sdept='信息系' and Ssex='男';
    
    第八步,查询 student 表所有的数据,按照年龄排序,年龄相同则按照学号降序排序:
    select * from student order by Sage ASC,Sno DESC;
    
    第九步,查询所有姓“王”的同学的基本信息:
    select * from student where Sname LIKE '王%';
    
    第十步,查询每个院系学生的人数,要求列出院系名称和相应人数:
    select COUNT(*) as '人数',Sdept from student GROUP BY Sdept;
    //如果一张表里面学号有重复的,必须去重!使用下面语句:
    select COUNT(DISTINCT Sno) as '人数',Sdept from student GROUP BY Sdept;
    

    到此,作业3-1就做完了!

linux下允许外网对mysql的访问

    从阿里云镜像市场安装的ubuntu(Apache+Mysql+VsFtp)里面Mysql默认是外网无法访问的,而在实际开发过程中需要对数据库的可视化比对操作,这样我们可以通过本地计算机来事实查改服务器的数据库。

    
    1、修改表,登录mysql数据库,切换到mysql数据库,使用sql语句查看
    "select host,user from user ;"
    \mysql -u root -p
    \mysql>use mysql; 
    \mysql>update user set host = '%' where user ='root'; 
    \mysql>select host, user from user; 
    \mysql>flush privileges;  (使修改生效,必须执行)
    
    
    2、授权用户,你想root使用密码从任何主机连接到mysql服务器
    \mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'admin1234' WITH GRANT OPTION;
    \mysql>flush privileges;  (使修改生效,必须执行)
    
    

MySQL常用命令

    连接MySQL数据库:

    mysql -h host -u user -p

    1.SHOW DATABASES;  查询已有的数据库

    2.USE DatabaseName; 使用某个数据库

    3.SHOW TABLES; 查询已有的表单;

    4.SELECT * FROM TableName; 检索表单所有数据(*代表所有,可用字段名替代)

    5.CREATE TABLE TableName (Id INT, Name VARCHAR(20)); 创建一个表

    6.DESCRIBE TableName; 显示表的结构

    7.INSERT INTO TableName VALUES (2014,”Jack”);向表中添加记录
    INSERT INTO TableName (Id,Name) VALUES (2014,”Jack”);

    8.DROP TABLE TableName; 删除表

    9.DELATE FROM TableName; 清空表

    10.UPDATE TableName set Name=”Tom” where Id=2014;更新表中数据