mysql数据库白名单限制(mysql数据库白名单限制查询)

本文目录一览:

sql server 能不能设置外网访问白名单?只允许某个ip的机器连接

须提供远程访问和1433口打开.

参考2005的.Sql Server 2005的1433端口打开和进行远程连接

如何打开sql server 2005 的1433端口

配置工具-Sql Server Configuration Manager-MSSQLSERVER的协议

看看TCP/IP协议是否启动,如果启动,右键菜单点”属性” ,在分页菜单中选”IP地址”,把”IP1″和”IP2″中”TCP端口”为1433,

“已启用”改为”是”

配置工具-Sql Server Configuration Manager-SQL Native Client 配置-客户端协议-TCP/IP

选择TCP/IP右键菜单中”属性”,确认”默认端口”是1433,”已启用”为”是”

SQL Server 2005 远程连接

配置TCP/IP属性.

Surface Area Configuration — Database Engine — Remote Connections —Using TCP/IT

SQL Server 外围应用配置器—服务和连接外围配置—database englie—远程连接—启用(远程连接的TCP/IP和named pipes)

SQL Server Configuration Manager—SQL2005网络配置—启用TCP/IP和named pipes

—————————————————————————————–

一般按如上即可.

其他说明见下:

sqlserver2005(Express版),为了便于管理,你还需要去下一个manage管理器,微软的官方网站有

下,安装好manage管理器后,在程序中连接sqlserver2005,下面几点是要注意的。

1. 开启sql2005远程连接功能,开启办法如下,

配置工具-sql

server外围应用配置器-服务和连接的外围应用配置器-打开MSSQLSERVER节点下的Database Engine

节点,先择”远程连接”,接下建议选择”同时使用TCP/IP和named pipes”,确定后,重启数据库服务就可以了.

2.登陆设置改为,Sql server and windows Authentication方式同时选中,具体设置如下:

manage管理器-windows

Authentication(第一次用windows方式进去),-对象资源管理器中选择你的数据服务器–右键属

性securitySql server and windows Authentication方式同时选中.

3:设置一个Sql server方式的用户名和密码,具体设置如下:

manage管理器-windows Authenticationnew querysp_password null,’sa123456′,’sa’

这样就设置了一个用户名为sa ,密码为:sa123456的用户,下次在登陆时,可以用Sql server方式,

用户名为sa ,密码为:sa123456的用户进数据库了.

4: 做完上面三步后,这样写连接字符串就可以顺利进入数据库了,

(server=.\\sqlexpress;uid=sa;pwd=sa123456;database=master”;

其它版本,做如下设置

程序—Microsoft SQL Server 2005—配置工具—SQL Server 外围应用配置器—服务和连接的外围应用配置器—

1、MSSQLserver(实例名)—DataBase Engine—远程连接—(设置选项)

在下方选项

2、SQL Server Browser—服务(停止时只本机访问)

3、程序—Microsoft SQL Server 2005—配置工具—SQL Server Configuration Manager—网络连接协议-选择实例对应协议—启用(shard memory、Named Pipes、TCP\IP)

注: SQL Server 浏览器程序以服务的形式在服务器上运行。SQL Server 浏览器侦听对 Microsoft SQL Server 资源的传入请求,

并提供计算机上安装的 SQL Server 实例的相关信息。

SQL Server 浏览器可用于执行下列三种操作:

浏览可用服务器

连接到正确的服务器实例

连接到专用管理员连接 (DAC) 端点

SQL Server Browser 服务 (sqlbrowser) 为数据库引擎 和 SSAS 的每个实例提供实例名称和版本号。

SQL Server 浏览器随 Microsoft SQL Server 2005 一起安装,

为该计算机上运行的早期版本的 SQL Server(从 Microsoft SQL Server 7.0 开始)提供此服务。

简述构成mysql权限控制步骤

1、mysql的权限是,从某处来的用户对某对象的权限。

2、mysql的权限采用白名单策略,指定用户能做什么,没有指定的都不能做。

3、权限校验分成两个步骤:

a、能不能连接,检查从哪里来,用户名和密码,常见错误 ERROR 1045 (28000): Access denied for user …

b、能不能执行操作,粒度从粗到细,分别为:mysql.user, mysql.db, msql.tables_priv, mysql.columns_priv, mysql.proc_priv。

需要注意的是,这些表各有分工,但是在权限分配上有一定的重合。

可以这样理解,mysql 先检查对大范围是否有权限,如果没有再到小范围里去检查。比如:先检查对这个数据库是否有select权限,如果有,就允许执行。如果没有,再检查对表是否有select权限,一直到最细粒度,也没有权限,就拒绝执行。举例来说:要检查张三能否控制一个团,我只要先检查张三能否控制一个军,如果可以,就是有权限,如果不行,再检查张三能否控制一个师。因此,粒度控制越细,权限校验的步骤越多,性能越差,需要考虑。

4、mysql服务启动之后,就会把权限有关的表的数据读到内存中,对权限做的修改,是否会即时生效?要看情况,手动修改表数据,需要 flush privileges

5、创建用户 create user,修改密码 set password,注意 alter user只是设置密码过期,可以登录,但是不能执行任何操作,必须从新设置密码,删除用户 drop user

6、host+user 标示唯一的一个用户,也就是说都叫张三,从不同地方来的张三是两个用户,他们有不同的权限。

7、那么问题来了,表中有两条记录:’root’@’192.168.1.101′ 和 ‘root’@’%’, 现在root来登录,mysql 怎么匹配呢?认为是哪个root呢?

mysql 对用户进行了排序,先对host排序,再对user排序,小范围在前面,大范围在后面,从上往下匹配。

8、权限授予,grant 权限 on 对象 to 用户@哪里来 identified by 密码

9、收回权限,revoke 权限 on 对象 from 用户@哪里来,注意revoke 必须要与grant 对应,也就是说,只能收回授予的权限。

10、那么问题来了,我授予张三 select的权限,现在revoke all privileges 也不能收回张三select的权限,因为没有对张三 grant all privileges,怎么解决这个问题?

使用 revoke all privileges,grant option from user

11、权限级别:从某台主机来的某个用户,对某个数据库中某个表的某些列的某部分记录,是否有权限。

12、全局:对象是mysql服务的所有数据库,包含服务级的管理权限,比如showdown

13、数据库:对象是某一个数据库

14、表:对象是数据库中某个表

15、列:对象是表中的某个列,比如:grant select (name) on xxx to xxx

16、程序:对象是存储过程和方法。

17、information_scheme,数据库和表是存放数据的,那么谁来存放 数据库和表这些信息呢? information_scheme 就是记录数据库和表的,需要注意的是,infromation_scheme没有对应的物理文件,它是mysql在内存中维护的。

18、权限设定原则:

a、尽量缩小权限

b、按业务,分离用户,不同的业务对应不同的用户

c、避免权限粒度太细,因为mysql权限检查,会影响性能。

19、文件泄密,linux下mysql客户端执行的操作记录在文件 ~/.mysql_history中,输出重定向/dev/null

20、密码丢失怎么办?

a、mysql启动,增加选项重置密码

b、mysql启动,增加选项不检查权限,登陆后修改密码,退出重启启动。

navicat设置白名单方法如下:

打开Navicat Premium ,连接》mysql,在“常规”页面内输入数据库IP、用户名、密码、端口号,点击测试

打开Navicat Premium ,连接》mysql,在“SSH”页面,勾选“使用SSH通道”,内然后输入数据库IP、用户名、密码、端口号,点击测试,测试通过后保存密码。

针对有些数据库有白名单限制,但如果IP经常浮动的话,会要经常加白名单,但如果知道可以连接数据库的linux用户密码就能通过SSH通道代理来连接数据库。保存密码后,这样就能直接连接数据库,减省很多麻烦。

MySQL基础的安全设置包括哪些?

MySQL软件所提供的权限(mysql.user、mysql.db、mysql.host)

(1) 系统表mysql.user

user权限表中字段分为四类: 用户字段、权限字段、安全字段和资源控制字段。

用户字段

用户字段.png

权限字段

权限字段.png

安全字段

安全字段.png

# 查看是否支持ssl标准show variables like ‘have_openssl’;123

资源控制字段

资源控制.png

系统表mysql.user中的所有资源字段的默认值为0,表示没有任何限制。

(2) 系统表mysql.db和mysql.host

在系统数据库mysql中,权限表除了表user外,还有表db和表host,这两张表都存储了某个用户对数据库的权限。

用户字段

mysql.db表

mysql.db表.png

mysql.host表

mysql.host表.png

权限字段

权限字段.png

(3)其他权限表

在系统数据库mysql中,除了上述权限表外,还有表tables_priv和columns_priv,其中标tables_priv用来实现单个表的权限设置,表columns_priv用来实现单个字段列的权限设置。

系统表mysql.tables_priv表结构

mysql.tables_priv表结构.png

mysql.tables_priv表结构.png

系统表mysql.columns_priv的表结构

columns_priv的表结构png

用户机制

(1) 登录和退出MySQL软件的完整命令

# 登录mysql -h 127.0.0.1 -u root -p# 退出(\q)exit|quit12345

(2) 创建普通用户账户

执行CREATE USER语句来创建用户账户

create user ‘mazaiting’@’localhost’ identified by ‘123456’;12

执行INSERT语句来创建用户

insert into user(host,user,password,ssl_cipher,x509_issuer,x509_subject)values(‘localhost’, ‘linghaoyu’, password(‘linghaoyu’),”,”,”);# 使新建用户生效flush privileges;12345

执行GRANT语句来创建用户

grant select on company.t_deptto ‘wangxingqin’@’localhost’ identified by ‘wangxingqin’;123

(3) 利用超级权限用户root修改用户账户密码

修改超级权限用户账户密码

# 通过mysqladmin命令修改root用户密码mysqladmin -u root -p password “123456”# 通过SET命令修改密码set password=password(“123456”);# 更新系统表mysql.user数据记录修改root用户密码update user set password=password(“123456″)where user=”root” and host=”localhost”;12345678

(4) 利用拥有超级权限用户root修改普通用户账户密码

# 创建用户grant select,create,drop on *.*to ‘mazaiting’@’localhost’ identified by ‘mazaiting’with grant option;# 通过grant命令修改用户密码grant select,create,drop on *.*to ‘mazaiting’@’localhost’ identified by ‘123456’;# 通过set命令修改用户密码set password for ‘mazaiting’@’localhost’=password(“123456”);# 更新系统表mysql.user数据记录修改用户密码update user set password=password(“mazaiting”)where user=’mazaiting’ and host=’localhost’;# 登录当前用户,并使用set命令修改密码set password=password(“123456”);123456789101112131415

(5) 删除普通用户账户

通过DROP USER语句删除普通用户

drop user ‘mazaiting’@’localhost’;12

删除系统表mysql.user数据记录实现删除用户账号

# 选择mysql数据库use mysql;# 删除用户delete from user where user=’mazaiting’ and host=’localhost’;12345

权限管理

(1) 对用户进行授权

# 创建用户grant select,create,drop on *.*to ‘mazaiting’@’localhost’ identified by ‘mazaiting’with grant option;# 查询表数据记录select host,user,password,select_priv,update_priv,grant_priv,drop_privfrom mysql.userwhere user=’mazaiting’ \G12345678910

(2) 查看用户所拥有权限

show grants for ‘mazaiting’@’localhost’ \G12

(3) 收回用户所拥有权限

# 回收用户的查询权限revoke select on *.* from ‘mazaiting’@’localhost’;# 回收用户的全部权限revoke all privileges, grant optionfrom ‘mazaiting’@’localhost

原创文章,作者:0Z4L9,如若转载,请注明出处:https://www.506064.com/n/129182.html

(0)
0Z4L90Z4L9
上一篇 2024-10-03
下一篇 2024-10-03

相关推荐

  • 详解Linux抓包

    一、Linux抓包命令 在Linux中,有两个命令可以用于抓包,分别是tcpdump和wireshark。 其中,tcpdump是在命令行下使用的工具,通过抓取网络接口的数据包并将…

    编程 2024-10-04
  • Jar包是什么意思?

    一、Jar包的定义 1、Jar包的全称为Java Archive,是Java平台中用于打包、压缩和发布Java类库的格式。使用Jar包可以将一组Java类文件、相关的资源和元数据打…

    编程 2024-10-04
  • java的二维数组,java的二维数组赋值

    本文目录一览: 1、java高手:java定义二维数组问题 2、Java中二维数组的使用 3、java 二维数组怎么定义 4、java,二维数组的创建? java高手:java定义…

    编程 2024-10-04
  • 如何合理设置元素的右侧空白

    一、为什么需要设置元素的右侧空白 当我们在排列元素的时候,通常需要对元素进行对齐,比如左对齐、居中对齐、右对齐等。而在对齐的过程中,我们总会遇到一些不同长度的元素,而其中一些元素的…

    编程 2024-10-04
  • Log4j漏洞修复方案

    一、产生原因 Log4j漏洞产生原因是因为Log4j2核心库中存在一个基于JNDI的任意代码执行漏洞,通过恶意构造特定的Class路径变量,攻击者便可控制JNDI上下文,最终在应用…

    编程 2024-10-04
  • 现在java做什么最好(现在java做什么最好)

    1、学Java以后可以做什么? 2、学了JAVA可以做什么? 3、学Java不知道将来能做哪些工作? 学java可以去做1、企业应用开发:由于Java的安全性,很多企业会使用Jav…

    编程 2024-10-03
  • c语言下mysql的c(mysql是c语言开发的吗)

    本文目录一览: 1、用C语言如何对MySQL数据库进行操作 2、C语言怎样连接mysql数据库 3、mysql查询语句 C语言 4、mysql与c语言连接,代码求解释。 用C语言如…

    编程 2024-10-03
  • python界面三点打开文件夹,python打开文件对话框打开文件

    本文目录一览: 1、怎么在Python进入指定文件夹? 2、python中三个点(…)什么意思? 3、python怎么打开已创建文件? 4、python安装后如何打开 …

    编程 2024-10-04
  • 使用SpringBoot的事务注解轻松管理数据库操作

    在开发中,对于数据操作的一致性和完整性要求越来越高,需要保证一系列操作的原子性,即要么全部成功,要么全部失败回滚。为了解决这一问题,我们可以使用SpringBoot的事务管理,通过…

    编程 2024-10-03
  • kafka的php,kafkal

    本文目录一览: 1、kafka的原理是什么? 2、kafka是干嘛的? 3、Redis、Kafka或RabbitMQ:哪个作为微服务消息代理最合适? 4、thinkphp,kafk…

    编程 2024-10-03

发表回复

登录后才能评论