SQL 数据库网站应该怎么做服务器环境?

SQL 数据库网站应该怎么做服务器环境?,第1张

其实,如果你只是为了简单的使用SQL SEVER数据库,只需按照你已经有的SQL动易网站帮助文档,按其说明步骤,一步步创建数据库,数据表等等,就已经达到”可用”这个基本目的了.

但是,如果你是要配置一个安全性高的sql数据库服务器,则要注意很多很多问题,并不是一件很简单的事情.下面具体说明如何安全配置sql server服务器,主要针对sql server 2000.

1.1. 第一步

打上SQLSERVER最新的安全补丁,现在补丁已经出到了SP3。下载地址网上搜一下。如果这一步都没有做好,那我们也没有继续下去的必要了。

1.2. 第二步

修改默认的1433端口,并且将SQL SERVER隐藏。这样能禁止对试图枚举网络上现有的SQL Server客户端所发出的广播做出响应。另外,还需要在TCP/IP筛选中将1433端口屏蔽掉,尽可能的隐藏你的SQL SERVER数据库。这样既便让攻击创建了SQL SERVER的账号,也不能马上使用查询分析器远程登陆来进行下一步的攻击。单从ASP,PHP等页面构造恶意语句的话,还有需要查看返回值的问题,总比不上直接查询分析器来得利落。所以我们首先要做到即使让别人注入了,也不能让攻击者下一步做得顺当。修改方法:

企业管理器-->你的数据库组 -->属性 -->常规 -->网络配置 -->TCP/IP -->属性,在这儿将你的默认端口进行修改,和SQL SERVER的隐藏。

1.3.第三步

SQL INJECTION(sql注入)往往在Web CODE中产生,而作为系统管理员或者数据库管理员,总不能常常的去看每一段代码。即使常常看代码,也不能保证我们在上面的疏忽。那怎么办?我们就要从数据库角色着手,让数据库用户的权限划分到最低点。SQL SERVER的默认权限让人真的很头疼,权限大得非常的高,权限小的又什么都做不了,SYSADMIN和DB_OWNER 真是让人又爱又恨。攻击者一但确认了网站存在SQL INJECTION漏洞,肯定有一步 *** 作步骤就是测试网站的SQL SERVER使用者具有多大的权限。一般都会借助

SELECT IS_SRVROLEMEMBER('sysadmin')

或者

SELECT IS_MEMBER('db_owner')

再或者

user =0

(让字符和数字进行比较,SQL SERVER就会提示了错误信息,从该信息中即可知道一些敏感信息)等语句进行测试。当然还有其他的方法。在当前,如果网站的数据库使用者用的是SA权限,再加上确认了WEB所处在的绝对路径,那么就宣告了你的网站的OVER。DB_OWNER权限也一样,如果确认了绝对路径,那么有50%的机会能给你的机器中上WEB方式的木马,如海阳等。所以这儿我们确认了一点,我们必须要创建自已的权限,让攻击者找不着下手的地方。在这儿引用一个SQL SERVER联机帮助中的例子:

创建 SQL Server 数据库角色的方法(企业管理器)

创建 SQL Server 数据库角色

1. 展开服务器组,然后展开服务器。

2. 展开"数据库"文件夹,然后展开要在其中创建角色的数据库。

3. 右击"角色",然后单击"新建数据库角色"命令。

4. 在"名称"框中输入新角色的名称。

5. 单击"添加"将成员添加到"标准角色"列表中,然后单击要添加的一个或多个用户。(可选)

只有选定数据库中的用户才能被添加到角色中。

对象权限

处理数据或执行过程时需要称为对象权限的权限类别:

• SELECT、INSERT、UPDATE 和 DELETE 语句权限,它们可以应用到整个表或视图中。

• SELECT 和 UPDATE 语句权限,它们可以有选择性地应用到表或视图中的单个列上。

• SELECT 权限,它们可以应用到用户定义函数。

• INSERT 和 DELETE语句权限,它们会影响整行,因此只可以应用到表或视图中,而不能应用到单个列上。

• EXECUTE 语句权限,它们可以影响存储过程和函数。

语句权限

创建数据库或数据库中的项(如表或存储过程)所涉及的活动要求另一类称为语句权限的权限。例如,如果用户必须能够在数据库中创建表,则应该向该用户授予

CREATE TABLE 语句权限。语句权限(如 CREATE DATABASE)适用于语句自身,而不适用于数据库中定义的特定对象。

语句权限有:

• BACKUP DATABASE

• BACKUP LOG

• CREATE DATABASE

• CREATE DEFAULT

• CREATE FUNCTION

• CREATE PROCEDURE

• CREATE RULE

• CREATE TABLE

• CREATE VIEW

暗示性权限

暗示性权限控制那些只能由预定义系统角色的成员或数据库对象所有者执行的活动。例如,sysadmin。

固定服务器角色成员自动继承在 SQL Server 安装中进行 *** 作或查看的全部权限。

数据库对象所有者还有暗示性权限,可以对所拥有的对象执行一切活动。例如,拥有表的用户可以查看、添加或删除数据,更改表定义,或控制允许其他用户对表进行 *** 作的权限。

db_owner 在数据库中有全部权限。

db_Accessadmin 可以添加或删除用户 ID。

db_securityadmin 可以管理全部权限、对象所有权、角色和角色成员资格。

db_ddladmin 可以发出 ALL DDL,但不能发出 GRANT、REVOKE 或DENY 语句。

db_backupoperator可以发出 DBCC、CHECKPOINT 和 BACKUP 语句。

db_datareader可以选择数据库内任何用户表中的所有数据。

db_datawriter可以更改数据库内任何用户表中的所有数据。

db_denydatareader不能选择数据库内任何用户表中的任何数据。

db_denydatawriter不能更改数据库内任何用户表中的任何数据。

在这儿把新建的数据库角色的权限配置好,比如需要使用哪个表、视图、存储过程等。然后把db_owner和db_securityadmin、db_backupoperator取消,不给攻击者BACKUP DATABASE和CREATE TABLE的机会,一但攻击者具有这两个权限,那么你的网站就还处在十分危险的状态。还有注意一下,在创建数据库账号时,千万不能对服务器角色进行选择。

1.4.第四步

修改SQL SERVER内置存储过程。

SQLSERVER估计是为了安装或者其它方面,它内置了一批危险的存储过程。能读到注册表信息,能写入注册表信息,能读磁盘共享信息等等……各位看到这儿,心里可能会在想,我的网站中有其它的代码,又不像查询分析器那样能直接将结果输出。给你这个权限,也不能怎么样,还是看不到信息。如果各位这样想就大错特错了。提示一下,如果攻击者有CREATE TABLE的权限,那么创建一个临时表,然后将信息INSERT到表中,然SELECT出来,接着跟数字进行比较,让SQL SERVER报错,那么结果就全出来了……所以我们要报着宁错杀,不放过的态度进行修补。

先来列出危险的内置存储过程:

xp_cmdshell

xp_regaddmultistring

xp_regdeletekey

xp_regdeletevalue

xp_regenumkeys

xp_regenumvalues

xp_regread

xp_regremovemultistring

xp_regwrite

ActiveX自动脚本:

sp_OACreate

sp_OADestroy

sp_OAMethod

sp_OAGetProperty

sp_OASetProperty

sp_OAGetErrorInfo

sp_OAStop

以上各项全在我们封杀之列,例如xp_cmdshell屏蔽的方法为:sp_dropextendedproc 'xp_cmdshell' 。如果需要的话,再用sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll' 进行恢复。如果你不知道xp_cmdshell使用的是哪个.dll文件的话,可以使用sp_helpextendedproc xp_cmdshel来查看xp_cmdshell使用的是哪个动态联接库。另外,将xp_cmdshell屏蔽后,我们还需要做的步骤是将xpsql70.dll文件进行改名,以防止获得SA的攻击者将它进行恢复。

1.5. 结语

我们做到这儿,你的SQL SERVER就基本上安全了。但是安全终究是相对的,不可能百分之百,除非你的网站用的是HTML。

第一步:前提必须是打开PHP启动状态   【绿色是启动  红色是暂停】

然后按住 【windows + r】键 ,会出现运行的框。

第二步:然后输入 【cmd】 点击回车会出现:

第三步:输入:MYSQL -h 127.0.0.1 -u root - proot 点击回车键,然后会跳出

这是我提前配置好的! 你们则会显示未找到的中文字幕。

#下面我们开始解决

v1.找到mysql所在的位置  【phpStudy   www根目录打开】

点击删除www  找到第5个文件MySQL

然后点击进去找到【bin】

在点击 bin 进入 复制路径    你会得到此路径:D:\phpStudy\MySQL\bin 复制

v2.返回电脑桌面在左下方 搜索  【环境变量】

点击环境变量进入

v3.新建一个文件  名字任意起但是要有语义化  我起的是:mysql home     然后里面填写:刚刚复制的路径  点击确认!

v4.找到path 点击【编辑】加双%%    然后在%里面输入  刚刚新建的文件夹名称  点击确认

最后全部点击确认之后在返回 【cmd】  输入MYSQL -h 127.0.0.1 -u root - proot   看到的结果是如此代表配置成功!

3人点赞

web学习生涯

1.安装oracle 11g

2.Oracle自带的SQL Developer

在安装完Oracle Database 11g Release 2数据库,想试一下Oracle自带的SQL DeveloperW工具,在 *** 作系统菜单的所有程序中找到SQL Developer如下所示,并单击:

结果却提示缺少快捷方式,没找到“SQLDEVELOPER.BAT”,**

在Oracle的安装目录D:\DataBaseInstall\Oralce_11g_r2\product\11.2.0\dbhome_1\sqldeveloper\sqldeveloper\bin下的确也没找到sqldeveloper.bat文件。网上很多人都说重新下载SQL Developer替换掉安装Oracle时自带的那个。

重新到Oracle官网下载SQL Developer,当前最新版下载地址:http://download.oracle.com/otn/java/sqldeveloper/sqldeveloper64-3.2.20.09.87-no-jre.zip

将下载下来的 sqldeveloper64-3.2.20.09.87-no-jre.zip解压到Oracle安装目录下

这时重新单击 *** 作系统菜单中的“SQL Developer”,看到命令窗口闪一下就消失了。看了一下SQL Developer的“readme.html”文档知道了SQL Developer 3.2支持的Java版本至少要1.6.0_04。

那就下载当前最新JDK安装,在这里我下载的是jrockit-jdk1.6.0_37-R28.2.5-4.1.0-windows-x64.exe。下载完成后双击出现如下安装界面:

在欢迎窗口中单击“Next”:

设置JDK安装目录,单击“Next”:

这里问你是否需要安装示例或源代码,根据需要选择,这里我就不选了直接单击“Next”:

这里是否安装JRE,选择“Yes”,单击“Next”:

设置JRE安装目录,单击“Next”:

安装过程:

安装完毕,单击“Done”关闭。

现在新的JDK安装完后,重新单击 *** 作系统菜单中的“SQL Developer”,这时“SQL Developer”可以启动,但是报了如下的异常:

Exception initializing 'oracle.dbtools.raptor.plsql.PLSQLAddin' in extension 'Or

acle SQL Developer': java.lang.NoClassDefFoundError: com/sun/jdi/Bootstrap

at oracle.jdevimpl.debugger.jdi.DebugJDIConnector.getVersion(DebugJDICon

nector.java:30)

at oracle.jdevimpl.debugger.support.DebugFactory.(DebugFactory.j

ava:81)

at oracle.dbtools.raptor.plsql.PLSQLAddin.initialize(PLSQLAddin.java:97)

at oracle.ideimpl.extension.AddinManagerImpl.initializeAddin(AddinManage

rImpl.java:407)

at oracle.ideimpl.extension.AddinManagerImpl.initializeAddins(AddinManag

erImpl.java:214)

at oracle.ideimpl.extension.AddinManagerImpl.initProductAndUserAddins(Ad

dinManagerImpl.java:128)

at oracle.ide.IdeCore.initProductAndUserAddins(IdeCore.java:1941)

at oracle.ide.IdeCore.startupImpl(IdeCore.java:1565)

at oracle.ide.Ide.startup(Ide.java:703)

at oracle.ideimpl.DefaultIdeStarter.startIde(DefaultIdeStarter.java:35)

at oracle.ideimpl.Main.start(Main.java:184)

at oracle.ideimpl.Main.main(Main.java:146)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.

java:39)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces

sorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:597)

at oracle.ide.boot.PCLMain.callMain(PCLMain.java:62)

at oracle.ide.boot.PCLMain.main(PCLMain.java:54)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodA

ccessorImpl. java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces sorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at oracle.classloader.util.MainClass.invoke(MainClass.java:128) at oracle.ide.boot.IdeLauncher.bootClassLoadersAndMain(IdeLauncher.java: 189) at oracle.ide.boot.IdeLauncher.launchImpl(IdeLauncher.java:89) at oracle.ide.boot.IdeLauncher.launch(IdeLauncher.java:65) at oracle.ide.boot.IdeLauncher.main(IdeLauncher.java:54) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl. java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces sorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at oracle.ide.boot.Launcher.invokeMain(Launcher.java:713) at oracle.ide.boot.Launcher.launchImpl(Launcher.java:115) at oracle.ide.boot.Launcher.launch(Launcher.java:68) at oracle.ide.boot.Launcher.main(Launcher.java:57)

看着异常就不爽啊,解决呗。运行命令行窗口查看是否设置了JDK系统环境变量,这里显然是没有设置JDK系统环境变量:

设置系统环境变量

在桌面选中“计算机”右键选择“属性”,单击“高级系统设置”:

在高级选项卡中单击“环境变量”:

在系统变量下单击“新建”,填入变量名“JAVA_HOME”,变量值为JDK的安装目录,我这里为“ D:\JAVAEEServiceInstall\Java\jrockit-jdk1.6.0_37-R28.2.5-4.1.0 ”,单击“确定”:

在系统变量中找到“Path”,单击“编辑”,在变量值中加入“%JAVA_HOME%\bin”以“”相隔,单击“确定”:

系统环境变量设置完成后,重新启动命令行窗口,检查是否成功。如下为设置成功:

重新单击 *** 作系统菜单中的“SQL Developer”,这时“SQL Developer”可以正常启动:

如果希望不出现“[WARN ][jrockit] MaxPermSize=128M ignored: Not a valid option for JRockit”警告,那用记事本打开SQL Developer的bin目录下的“sqldeveloper.bat”文件,找到“-XX:MaxPermSize=128M”直接删除。因为jrockit已经不需要-XX:MaxPermSize这样的参数了。

注:1.JDK一定要是1.6版本的即U6版本。

2.发现SQL_developer还是会一闪而过,但是SQL_developerW可以方面使用。

3.Oracle SQL Developer 添加SQLServer 和Sybase 连接

1. 开始只有oracle 和access 连接

\

<喎?"/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+CjxzdHJvbmc+Mi4gtPK/qk9yYWNsZSBTUUwgRGV2ZWxvcGVyo7o8L3N0cm9uZz48L3A+CjxwPgo8c3Ryb25nPrmkvt+hqqGqPHN0cm9uZz4mZ3Q7PC9zdHJvbmc+ytfRoc/uoaqhqjxzdHJvbmc+Jmd0Ozwvc3Ryb25nPsr9vt2/4qGqoaomZ3Q7tdrI/be9SkRCQ8f9tq+zzNDyoaqhqiZndDvM7bzTx/22r8z1xL88L3N0cm9uZz48YnI+CjwvcD4KPHA+CjxpbWcgc3JjPQ=="/uploadfile/Collfiles/20160421/20160421091223242.jpg" alt="\">

\

3. 自动加载到目录,JTDS.jar 下载后就到放这里。

(我的路径:C:\Documents and Settings\Administrator\Application Data\SQL Developer\)

我的JTDS.jar免费下载地址:http://download.csdn.net/detail/kk185800961/5080188

\

4. 完成后添加连接有SQLServer 和Sybase了。

\

---------------------------------------------------------------------------------

---------------------------------------------------------------------------------

还有一种添加方法是:

1. 帮助——>检查更新

\

2. 选择可更新的相关软件查件

\

3. 单击下一步自动更新,则出现下列详细插件,选取JTDS JDBC Driver……

\

\

4. 填写在官方网址上的账户信息,确定。

\

4.sqlserver 转oracle

上一次,我使用手工转换SQL脚本的方式进行数据库的迁移,其间过程相当繁琐,特别是标识符长度的限制让我焦头烂额,因为我们的系统中长标识符真是多如繁星,另外,表结构建好之后,数据的迁移又是一个相当复杂的过程,因为修改了不少的表名,需要把导出的数据和表一一对应上。

但是,除了手工的方式之外,其实我们还有更为简便和自动化的解决方案,那就是ORACLE官方提供的Sql Developer自带的Oracle Migration Workbench。

什么是Oracle SQL Developer?在官方页面上,是这样介绍它的:

Oracle SQL Developer is a free and fully supported graphical tool for database development. With SQL Developer, you can browse database objects, run SQL statements and SQL scripts, and edit and debug PL/SQL statements. You can also run any number of provided reports, as well as create and save your own. SQL Developer enhances productivity and simplifies your database development tasks .

另外,通过第三方驱动包,该工具还支持连接和管理各种主流数据库服务器。

下面就把我使用这个工具迁移Microsoft SQL Server 2008数据库到Oracle 11G的过程记录下来,为了积累也为分享。

第一部分:获取工具

第二部分:建立资料档案库(Migration Repository)

第三部分:数据库移植向导

第四部分:SqlServer中的架构到Oracle中的模式,名称的处理

第五部分:转移数据

第六部分:存储过程和函数

首先,当然是获得工具,该工具在Oracle Sql Developer官方下载页面里面可以直接下载到。Windows 32位直连地址:Windows 32bit Sql Developer。Oracle Sql Developer需要JDK的支持,在下载页面中提供了包含JDK的下载包,还有支持各种 *** 作系统的下载选项。

下载后,解压到任意位置。直接运行程序。第一次运行,需要指定JDK的目录。

启动后,我们要做的第一件事,不干别的,先下载SQL SERVER的驱动程序。点击菜单帮助,选择检查更新,d出检查更新向导窗口,第一页一般是废话,直接下一步,等更新中心列表加载完毕后,只选择“Third Party SQL Developer extensions”,点击下一步,等待更新搜索完毕后,中列表中找到并选中 JTDS JDBC Driver,如下图:

image

下一步,在许可协议页面,点击“我同意”按钮后再点下一步,等下载完毕后关闭窗口,d出提示需要重启程序才能完成更新,点击“是”。等程序重启完毕。

环境准备完毕,开始进入到正题移植数据库。

建立资料档案库(Migration Repository)

一、连接到Oracle

在程序左边的连接窗口中,点击加号按钮,添加一个到Oracle数据库的dba连接,如下图:

image

配置完成后,点击连接按钮,连接到数据库。

二,建立用户

打开到Oracle数据的连接,新建一个用户,我们要在该用户的模式中建立所谓的“资料档案库”,并使用该用户去建立SQL Server移植后的用户名,以及做其它的一些工作。按照帮助中的说明,这个用户最少需要以下权限和角色:

Roles

CONNECT WITH ADMIN OPTION,RESOURCE WITH ADMIN OPTION

Privileges

ALTER ANY ROLE,ALTER ANY SEQUENCE,ALTER ANY TABLE,ALTER TABLESPACE,ALTER ANY TRIGGER,COMMENT ANY TABLE,CREATE ANY SEQUENCE,CREATE ANY TABLE,CREATE ANY TRIGGER,CREATE VIEW WITH ADMIN OPTION,CREATE PUBLIC SYNONYM WITH ADMIN OPTION,CREATE ROLE

CREATE USER,DROP ANY SEQUENCE,DROP ANY TABLE,DROP ANY TRIGGER,DROP USER,DROP ANY ROLE,GRANT ANY ROLE,INSERT ANY TABLE,SELECT ANY TABLE,UPDATE ANY TABLE

以下语句直接建立一个名为migrations的用户:

-- Create the user

create user MIGRATIONS

identified by MIGRATIONS

default tablespace USERS

temporary tablespace TEMP

profile DEFAULT

-- Grant/Revoke role privileges

grant connect to MIGRATIONS with admin option

grant resource to MIGRATIONS with admin option

-- Grant/Revoke system privileges

grant alter any role to MIGRATIONS

grant alter any sequence to MIGRATIONS

grant alter any table to MIGRATIONS

grant alter any trigger to MIGRATIONS

grant alter tablespace to MIGRATIONS

grant comment any table to MIGRATIONS

grant create any sequence to MIGRATIONS

grant create any table to MIGRATIONS

grant create any trigger to MIGRATIONS

grant create any view to MIGRATIONS

grant create materialized view to MIGRATIONS with admin option

grant create public synonym to MIGRATIONS with admin option

grant create role to MIGRATIONS

grant create session to MIGRATIONS with admin option

grant create synonym to MIGRATIONS with admin option

grant create tablespace to MIGRATIONS

grant create user to MIGRATIONS

grant create view to MIGRATIONS with admin option

grant drop any role to MIGRATIONS

grant drop any sequence to MIGRATIONS

grant drop any table to MIGRATIONS

grant drop any trigger to MIGRATIONS

grant drop tablespace to MIGRATIONS

grant drop user to MIGRATIONS

grant grant any role to MIGRATIONS

grant insert any table to MIGRATIONS

grant select any table to MIGRATIONS

grant unlimited tablespace to MIGRATIONS with admin option

grant update any table to MIGRATIONS

再次点击连接中的加号按钮,添加一个使用刚刚新建立的用户的连接。

image

连接后,在该连接上点击右键,选择移植资料档案库-关联移植资料档案库,程序会在该用户下建立移植资料档案库所需要的表、存储过程等等,d出一个对话框显示当前建立的进度,稍等片刻即建立完毕。

数据库移植向导

一,建立到源SqlServer数据库的连接

在连接窗口中,点击绿色加号按钮,打开连接配置窗口,按下图建立到SqlServer的连接:

image

因为动态商品的使用,使得原来SqlServer配置页中默认的1433往往没有办法连接到SqlServer2008数据库,修改为1434即可。

二、启动数据库移植向导

建立到SqlServer的连接后,开始对数据库进行移植。有两个地方可以启动数据库移植向导,一个是在新建的SqlServer连接上点击右键,选择移植到Oracle,另一个是在菜单工具-移植-移植,启动向导后,第一页当然是向导的简介,通过简介,我们可以知道整个移植过程有7步,并且有两个先决条件,如下图:

image

直接点击下一步。

三、选择资料档案库

在这个页面中,我们也可以去建立连接和资料档案库,也就是前一部分中我们所做的工作在这里也可以进行。当然选择我们刚刚建立的migrations连接,如下图:

image

这里截断的意思是将资料档案库清空,我们建立一个移植项目后,所有抓取的数据库结构信息、统计信息还有转换记录等都保存在这个资料档案库中,只要项目名称不同,即使不清空资料档案库也不会影响到移植工作。当然,如果希望更“清爽”一点,也可以勾选。这是后话。

四、为转换项目命名

选择好资料档案库后,点击下一步,为我们的转换项目输入名称和备注,以便识别。另外,还需要指定脚本生成目录,用于存放向导执行过程中生成的脚本。

五、选择源数据库连接

然后继续下一步,选择源数据库,在这里有联机和离线两种模式,联机即是直接连接到源数据进行抓取,而离线则是在SqlDeveloper不直接连接到源数据库的情况下,通过SqlDeveloper提供的脚本预先捕获数据库,得到数据库结构文件后,通过向导导入。

这里当然是选择我们刚才建立的SqlServer连接。

六、选择捕获源数据库


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10031114.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存