SQL_server 数据库安全设计
时间:2020-04-25
本文章向大家介绍SQL_server 数据库安全设计,主要包括SQL_server 数据库安全设计使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
相关知识:
1、创建用户:
(1)创建名为user1的用户,密码为user1coder,只能在localhost登录。
CREATE USER 'user1'@'localhost' IDENTIFIED BY 'user1coder';
(2)创建名为user2,密码为123的用户,可以通过任何ip连接数据库。
create user 'user2'@'%' identified by '123'
(3)删除用户
DROP USER 'user1'@'localhost';
(4)查看用户
select user,host from mysql.user;
2、权限管理
- all 所有权限(不包括授权权限)
- Delete权限代表允许删除行数据的权限
- Insert权限代表是否允许在表里插入数据
- Select权限代表允许从表中查看数据,某些不查询表数据的select执行则不需要此权限,如Select 1+1, Select PI()+2;而且select权限在执行update/delete语句中含有where条件的情况下也是需要的
- Update权限代表允许修改表中的数据的权限
- Usage权限是创建一个用户之后的默认权限,其本身代表连接登录权限
(1)查看权限
show grants for 'user1'@'localhost' ;
(2)收回权限
- revoke 权限列表 on 对象列表 from 用户列表
- revoke all on mydb.* from 'user1'@'localhost'; //回收所有权限
- revoke select,delete on *.* from 'user1'@'%'; //回收部分权限
3、库名.表名
- *.* 所有数据库下的所有表
- 数据库.* 指定数据库下的所有表
- 数据库名称.表名称 指定数据库的指定表
- select(col1名称),insert(col1名称,col2名称) on mydb.mytable 只能对mydb.mytable第一列有读权限,第一第二列有插入权限
任务描述:
注:grant命令执行后如果数据库中没有对应的角色会自动创建(授权命令)
(1)数据库维护人员(1人):可对订单数据库进行任何操作。
账号名称:system_dbowner,允许任何ip通过此用户连接数据库,密码为usercode1
grant all on 订单数据库.* to 'system_dbowner'@'%' identified by 'usercode1';
(2)数据录入人员(2人):可对订单数据库中所有表进行插入、删除、更新操作,不能创建与修改表结构及其它授权等操作。
账号名称:datarecorder1, datarecorder2,允许任何ip通过此用户连接数据库,密码为usercode1
grant insert,delete,update,select on 订单数据库.* to 'datarecorder1'@'%' identified by 'usercode1'; grant insert,delete,update,select on 订单数据库.* to 'datarecorder2'@'%' identified by 'usercode1';
(3)订单管理人员(2人):能对订单数据库中的订单表和项目表进行插入、删除、更新操作,其它表仅能查询。不能创建与修改表结构及其它授权等操作。
账号名称:order_1,order_2,允许任何ip通过此用户连接数据库,密码为usercode1
grant select on 订单数据库.* to 'order_1'@'%' identified by 'usercode1';--授予查询所有表格的权限 grant insert,delete,update on 订单数据库.订单 to 'order_1'@'%' identified by 'usercode1'; grant insert,delete,update on 订单数据库.订货项目 to 'order_1'@'%' identified by 'usercode1'; grant select on 订单数据库.* to 'order_2'@'%' identified by 'usercode2';--授予查询所有表格的权限 grant insert,delete,update on 订单数据库.订单 to 'order_2'@'%' identified by 'usercode1'; grant insert,delete,update on 订单数据库.订货项目 to 'order_2'@'%' identified by 'usercode1';
(4)客户管理人员(2人):能对订单数据库中的代理商表和客户表进行插入、删除、更新,其它表仅能查询。不能创建与修改表结构及其它授权等操作。
账号名称:customer_1, customer_2,允许任何ip通过此用户连接数据库,密码为usercode1
grant select on 订单数据库.* to 'customer_1'@'%' identified by 'usercode1';--授予查询所有表格的权限 grant insert,delete,update on 订单数据库.代理商 to 'customer_1'@'%' identified by 'usercode1'; grant insert,delete,update on 订单数据库.客户 to 'customer_1'@'%' identified by 'usercode1'; grant select on 订单数据库.* to 'customer_2'@'%' identified by 'usercode1';--授予查询所有表格的权限 grant insert,delete,update on 订单数据库.客户 to 'customer_2'@'%' identified by 'usercode1'; grant insert,delete,update on 订单数据库.代理商 to 'customer_2'@'%' identified by 'usercode1';
原文地址:https://www.cnblogs.com/junfblog/p/12774245.html
- 开发中最常见的Java字符串问题总结
- .net异步性能测试(包括ASP.NET MVC WebAPI异步方法)
- Java 8的函数式编程学习
- 在C++中反射调用.NET(一) 反射调用第一个.NET类的方法
- QuickPager分页控件,最简单的设置代码
- Java中有关Null的9问题
- 在C++中反射调用.NET(二) 定义数据接口 绑定委托方法 使用SOD DTO 对象 将.NET对象转换到C++结构体为何不使用序列化的问题
- Java阻塞队列线程集控制的实现方法
- 【自然框架】QuickPager分页控件,新增一种分页方式——伪URL分页(Postback版)
- 我们的漏洞Webug 3.0中级进阶攻略(上)
- 【自然框架】QuickPager分页控件的总体介绍和在线演示
- 在C++中反射调用.NET(三) 使用非泛型集合的委托方法C++中的列表对象list C++传递集合数据给.NET创建泛型List实例反射静态方法反射调用索引器当委托遇到协变和逆变C++/CLI
- 如何使用树莓派自制网络监视器
- 利用雅虎小型企业服务平台的目录遍历漏洞查看客户的信用卡信息
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 文件操作与文件夹操作
- 使用文件字节输入流FileInputStream读取文件
- 二进制与十进制与十六进制介绍+转换+图解
- Swagger 3.0 官方 starter 诞生了,其它的都可以扔了~
- 原码+反码+补码概述与示范
- HTTP客户端连接,选择HttpClient还是OkHttp?
- 数据类型(基本数据类型和引用数据类型)范围与字符转换,代码示例+个位十位百位相加面试题
- Scanner关键字的使用+代码介绍+注意事项
- 将一个txt文件,复制到另一个txt文件中(缓冲字节流(BufferedInputStream,BufferedOutputStream))
- java实现客户端服务端互发消息并接收
- 使用NIO实现非阻塞式(相对的)多人聊天室
- 三次握手与四次挥手+图解
- 单例模式-->饿汉式+懒汉式
- 非常有必要了解的Springboot启动扩展点
- 冒泡排序图解+代码示例