CIS 16.6数据库配置:正确设置数据库,确保系统正常运行 (cis 16.6数据库配置)

在现代企业中,数据库管理系统已成为企业信息化的必要组成部分,并广泛应用于各个领域。数据库管理系统的正确配置,对于保证系统的正常运行至关重要。本文将重点介绍如何正确设置CIS 16.6数据库,以确保系统正常运行。

1. 创建数据库

在数据库管理系统中,首先要做的就是创建数据库。创建数据库时需要考虑如下几点:

1) 确定数据库名称:在创建数据库时,需要确定数据库的名称。数据库名称应简洁、有意义,并与系统所实现的功能相符合。例如,如果创建一个存储供应商信息的数据库,可以将其命名为”Supplier information database”。

2) 确定数据库版本:数据库版本对于系统的运行也至关重要。如果数据库版本过老,可能存在一些安全漏洞,容易被黑客攻击。因此,在创建数据库时,需要选择最新的版本。

3) 确定数据模型:数据模型是数据库设计中的基础。目前,常见的数据模型有层次模型、网络模型和关系模型等。在选择数据模型时,需要根据实际情况选择最适合的模型。

2. 配置数据库

对于数据库的配置,需要对以下几个方面进行设置:

1) 配置数据存储文件目录:这是数据库存储数据的物理位置,为了保证数据库稳定运行,这个目录需要具有较高的安全性和稳定性。

2) 配置数据库访问权限:配置数据库访问权限是保证数据库安全的重要一步。在配置时要慎重考虑,避免将数据库暴露在公共网络中。

3) 配置数据库备份:数据备份是数据库管理中至关重要的一环,通过设置定时备份,可以防止数据丢失和损坏。

3. 优化数据库

在配置数据库后,还需要对数据库进行优化,以便提高数据库的性能和稳定性。

1) 确定数据库的存储引擎:存储引擎是数据库的核心组件,直接决定了数据的管理方式。目前,较为流行的存储引擎有InnoDB、MyISAM等。

2) 建立索引:建立索引可以提高数据库查询的速度,从而提高系统的响应速度。

3) 合理设置缓存大小:设置适当的缓存大小可以减少磁盘I/O,提高系统性能。

4. 数据库监控和维护

对于一个复杂的数据库系统,监控和维护工作是必不可少的。通过对数据库的监控和维护,可以及时发现数据库的问题,并及时处理,保证数据库的正常运行。

1) 设置数据库警报:通过设置数据库警报,可以监控数据库的变化,并及时发现系统故障。

2) 定期维护数据库:定期维护数据库可以防止数据损坏和系统崩溃。

CIS 16.6数据库配置是保证系统正常运行的非常重要的一步。在配置CIS 16.6数据库时,需要对创建数据库、配置数据库、优化数据库以及数据库监控和维护等方面进行设置。只有在正确的设置下,才能保证数据库的稳定性和性能,从而确保系统的正常运行。

相关问题拓展阅读:

求帮忙做一个银行数据库 Oracle

功冲弊能一:

create database bank;

功能二:

create table userinfo(

customerID number(10) not null,

customerName varchar2(10) not null,

PID char(18) not null,

telephone char(11) not null,

address varchar2(255) not null

);

create table cardinfo(

cardID varchar2(19) not null,

cardCustomerID number(10) not null,

curtype char(3) not null,

savingtype char(4) not null,

openDate date not null,

openmoney number(10,2) not null,

blance number(10,2) not null,

password char(6) not null,

isreportLoss char(2) not null

);

create table transinfo(

id number(15) not null,

transcustomerID number(10) not null,

transcardID varchar2(19) not null,

transdate date not null,

tranoney number(10,2) not null,

transtype char(4) not null,

remark varchar2(255) not null

);

功能三:

alter table userinfo add constraint pk_userinfo primary key (customerID);

alter table userinfo add constraint ck_PID check(length(PID)=18);

alter table cardinfo add constraint pk_cardinfo primary key (cardID);

alter table cardinfo add constraint fk_CustomerID_card foreign key cardCustomerID references userinfo(customerID);

alter table transinfo add constraint pk_transinfo primary key (id);

alter table transinfo add constraint fk_CustomerID_trans foreign key cardCustomerID references userinfo(customerID);

alter table transinfo add constraint fk_transcardID_trans foreign key cardCustomerID references cardinfo(cardID);

功能四:

insert into userinfo values(1,’张三’,’5671′,’档判御’,’地址1′);

insert into userinfo values(2,’李四’,’5672′,”,’地址2′);

insert into userinfo values(3,’王五’,’5673′,”,’地址3′);

insert into cardinfo values(‘56789′,1,’RMB’,’活期’,sysdate,5.04,5.04,’123456′,’否’);

insert into cardinfo values(‘56788′,2,’JPY’,’活期’,sysdate,3.22,3.22,’123457′,’否’);

insert into cardinfo values(‘56787′,3,’USA’,’定期’,sysdate,6.78,6.78,’123458′,’否’行岩);

insert into transinfo values(1,1,’56789′,sysdate,0.23,’存入’,’存钱’);

insert into transinfo values(2,2,’56788′,sysdate,1.27,’支取’,’取钱’);

insert into transinfo values(3,3,’56787′,sysdate,2.34,’存入’,’存钱’);

功能五:

select transcardID,tranoney from transinfo where to_char(transdate,’mm’)=to_char(sysdate,’mm’) and tranoney=max(tranoney);

功能六:

create procedure p_c

is

cursor cr is

select b.cardID,a.customerName,a.telephone from userinfo a,cardinfo b where a.customerID=b.cardCustomerID and to_char(sysdate,’dd’) in (’28’,’29’,’30’,’31’) and b.blance

cur_info cr;

begin

for cur_info in cr loop

dbms_output.put_line(‘卡号:’ || cur_info.cardID || ‘&&’ || ‘姓名:’ || cur_info.customerName || ‘:’ || cur_info.telephone);

end loop;

end p_c;

如何做好MySQL安全策略

摘至

网页链接

常见Mysql配置答握睁文件:linux系统下是my.conf,windows环境下是my.ini;

数据库整体安全需求:机密性、完整性、可用性;

下面以mysql 5.7版本为例,介绍mysql常见的安全策略、配置、加固方式等等,有些策略可能只针对Linux操作系统,更多策略可以参考CIS Mysql Benchmark相关文档:

1、操作系统级别安全配置

1.1不要将数据库放在系统分区

Windows系统:直接检查是否将数据库放置在C盘。

Linux系统:

在终端连接上mysql数据库,执行如下命令:

show variables where variable_name = ‘datadir’; 

然后返回shell命令行:

df -h

其中datadir是上一条命令的返回值。

上述命令的返回值不应是/、/var、/usr

1.2使用专用的最小权限账号运行mysql数据库进程

Windows系统:直接打开任务管理器,查看运行mysql进程的操作系统账号,不能为administrator账号。

Linux系统:

Shell命令行运行如下命令:

ps -ef | grep mysql

查看mysql服务的运行账号是否为root或其他高权限账号,如果是的,则需要创建一个非管理员专用账号来运行mysql服务。

1.3禁止使用mysql命令行历史记录

Linux系统:

执行如下命令:

find / -name “.mysql_history”

查看是否存在mysql的历史命令记录文件,如果存在,则需要进行如下加固:

(1)删除.mysql_history文件;

(2)设置环境变量MYSQL_HISTFILE为/dev/null,并添加到shell的初始化脚本中,创建mysql_history到/dev/null的链接:

ln -s /dev/null $HOME/.mysql_history 

1.4 确保MYSQL_PWD环境变量未设置敏感信息

Windows系统下进入cmd命令行,使用如下命令:

Set

查看是否设置了环境变量MYSQL_PWD。

Linux系统下使用如下命令:

grep MYSQL_PWD /proc/*/environ

查看MYSQL_PWD环境变量是否设置了敏感信息。

确认那个配置文件或脚本设置了MYSQL_PWD环境变量。

2、安装

2.1使用数据库专用服务器

使用专用的服务器安装mysql服务可以减少mysql服务的攻击面,尽量卸载或删除操作系统上的不必要的应用或服务,减少其他应用的皮丛安装可能给mysql的运行带来的安全风险。

2.2 不要复用数据库账号

运行mysql服务的操作系统账号不要用来运行其他应用或服务,这样可以避免其他应用或服务器被攻击给mysql服务带来影响。清岁

2.3 历史命令行密码设置为不可见

使用如下命令:

mysql -u admin -p password

连接mysql数据库服务,退出后查看历史命令,确认password是否为明文。

建议使用如下命令方式登录:

(1)先输入mysql -u admin -p

(2)根据命令行提示输入密码;

而不要在一整条命令中输入密码。

另外要控制mysql配置文件访问权限。

3、文件权限控制

3.1 控制数据目录的访问权限

数据目录是mysql数据库存放的位置,在mysql命令行界面下执行如下命令:

show variables where variable_name = ‘datadir’; 

在终端命令行下执行如下命令:

ls -l /.. | egrep “^d{3}——\s*.\s*mysql\s*mysql\s*\d*.*mysql”

其中是之一条命令的执行结果

如果存在问题,linux环境下在终端执行如下命令进行加固:

chmod 700

chown mysql:mysql  

3.2 控制二进制日志文件的权限

mysql的运行会产生很多日志,例如二进制日志、错误日志、慢查询日志等等,Mysql命令行下执行如下命令:

show variables like ‘log_bin_basename’;

在终端命令行执行如下命令:

ls .*

对于发现的每一个文件,执行如下命令:

ls -l | egrep “^-{2}-{2}—-\s*.*$” 

根据输出确认日志文件的权限设置是否存在问题。

对于每个日志文件,修改其权限和属组如下:

chmod 660

chown mysql:mysql

3.3 控制错误日志文件的权限

Mysql命令行下执行如下命令:

show variables like ‘log_error’;

在终端命令行执行如下命令:

ls .*

对于发现的每一个文件,执行如下命令:

ls -l | egrep “^-{2}-{2}—-\s*.*$” 

根据输出确认日志文件的权限设置是否存在问题。

对于每个日志文件,修改其权限和属组如下:

chmod 660

chown mysql:mysql

3.4控制慢查询日志文件的权限

Mysql命令行下执行如下命令:

show variables like ‘slow_query_log_file’;

在终端命令行执行如下命令:

ls .*

对于发现的每一个文件,执行如下命令:

ls -l | egrep “^-{2}-{2}—-\s*.*$” 

根据输出确认日志文件的权限设置是否存在问题。

对于每个日志文件,修改其权限和属组如下:

chmod 660

chown mysql:mysql

3.5控制通用日志文件的权限

Mysql命令行下执行如下命令:

show variables like ‘general_log_file’;

在终端命令行执行如下命令:

ls .*

对于发现的每一个文件,执行如下命令:

ls -l | egrep “^-{2}-{2}—-\s*.*$” 

根据输出确认日志文件的权限设置是否存在问题。

对于每个日志文件,修改其权限和属组如下:

chmod 660

chown mysql:mysql

3.6控制审计日志文件的权限

Mysql命令行下执行如下命令:

show global variables where variable_name =  ‘audit_log_file’;

在终端执行如下命令:

ls -l | egrep “^-rwrw**mysql

\t>*mysql.*$”

根据输出确认日志文件的权限设置是否存在问题。

对于每个日志文件,修改其权限和属组如下:

chmod 660

chown mysql:mysql

4、通用安全

4.1安装最新的补丁

在mysql命令行下查询MySQL的版本:

SHOW VARIABLES WHERE Variable_name LIKE “version”;

确认是否由需要安装的补丁包,如果有请安装。

4.2 删除test数据库

Mysql数据库默认安装好后,存在一个名为test的数据库,如果存在,请执行如下命令删除:

Drop database “test”

4.3 确保读取本地文件的参数设置为失效

Mysql命令行下,使用如下命令:

SHOW VARIABLES WHERE Variable_name = ‘local_infile’;

查看结果是否为OFF。

如果该命令为ON,则数据库用户可以通过LOAD DATA INFILE 或者 SELECT local_file 读取到数据库所在操作系统本地的文件,在这种情况下,需要在mysql配置文件中新增一行:

Local-infile=0;

然后重启数据库服务。

5、权限配置

5.1控制可以访问所有数据库的账号

Mysql数据库下的user表和db表中存放着可以授予数据库用户的权限,确保只有管理员账号才能访问所有数据库。可以访问mysql数据库的用户或许可以查看密码哈希值、修改用户权限等等。

使用如下sql语句:

SELECT user, host FROM mysql.user

WHERE (Select_priv = ‘Y’) OR (Insert_priv = ‘Y’) OR (Update_priv = ‘Y’)

OR (Delete_priv = ‘Y’)  OR (Create_priv = ‘Y’)  OR (Drop_priv = ‘Y’);

SELECT user, host FROM mysql.db WHERE db = ‘mysql’

AND ((Select_priv = ‘Y’) OR (Insert_priv = ‘Y’) OR (Update_priv = ‘Y’)

OR (Delete_priv = ‘Y’) OR (Create_priv = ‘Y’) OR (Drop_priv = ‘Y’));

确保返回结果只能是数据库管理员账号。

5.2限制非管理员用户的权限

Mysql.user表中的权限列有:

file_priv:表示是否允许用户读取数据库所在主机的本地文件;

Process:表示是否允许用户查询所有用户的命令执行信息;

Super_priv:表示用户是否有设置全局变量、管理员调试等高级别权限;

Shutdown_priv:表示用户是否可以关闭数据库;

Create_user_priv:表示用户是否可以创建或删除其他用户;

Grant_priv:表示用户是否可以修改其他用户的权限;

应确保只有数据库管理员才有上述权限,使用如下sql语句查看拥有各个权限的数据库账号:

select user, host from mysql.user where File_priv = ‘Y’;

select user, host from mysql.user where Process_priv = ‘Y’;

select user, host from mysql.user where Process_priv = ‘Y’;

SELECT user, host FROM mysql.user WHERE Shutdown_priv = ‘Y’;

SELECT user, host FROM mysql.user WHERE Create_user_priv = ‘Y’;

SELECT user, host FROM mysql.user WHERE Grant_priv = ‘Y’;

SELECT user, host FROM mysql.db WHERE Grant_priv = ‘Y’;

确保查询结果中不存在非管理员用户。

如果存在非管理员用户,使用如下命令进行权限回收:

REVOKE FILE ON *.* FROM ”;

REVOKE PROCESS ON *.* FROM ”;

REVOKE SUPER ON *.* FROM ”;

REVOKE SHUTDOWN ON *.* FROM ”;

REVOKE CREATE USER ON *.* FROM ”;

REVOKE GRANT OPTION ON *.* FROM ;

其中user为上述查询到的非管理员用户。

5.3合理控制DML/DDL操作授权

DML/DDL语句包括创建或修改数据库结构的权限,例如insert、update、delete、create、drop和alter语句,在任何数据库中都要控制用户的此类权限,确保只授权给有业务需求的非管理员用户。Mysql命令行下执行如下命令:

SELECT User,Host,Db FROM mysql.db WHERE Select_priv=’Y’

OR Insert_priv=’Y’ OR Update_priv=’Y’ OR Delete_priv=’Y’ OR Create_priv=’Y’

OR Drop_priv=’Y’ OR Alter_priv=’Y’;

上述查询到的用户只能对特地的数据库才有相关的权限,使用如下命令进行相关权限的回收:

REVOKE SELECT ON . FROM ;

REVOKE INSERT ON . FROM ;

REVOKE UPDATE ON . FROM ;

REVOKE DELETE ON . FROM ;

REVOKE CREATE ON . FROM ;

REVOKE DROP ON . FROM ;

REVOKE ALTER ON . FROM ;

其中为查询到的未授权的用户,host为相关主机,database为相关数据库。

6、审计和日志

6.1开启错误日志审计功能

错误日志包括数据库运行和停止过程中的一系列活动信息,有助于分析数据库运行过程中的一些异常活动,一般情况下需要开启错误日志记录功能,使用如下命令查询:

SHOW variables LIKE ‘log_error’;

确保返回结果为非空,如果为空,需要在mysql数据库配置文件中增加相关配置。

6.2确保日志存放在非系统区域

日志文件随着数据库的运行会不断增加,如果存放在系统区域,则会影响系统的正常运行,使用如下命令进行查询:

SELECT @@global.log_bin_basename;

确保返回结果不是如下路径:/、/var、/usr

6.3关闭原始日志功能

原始日志选项会决定一些敏感信息是否会被明文写进日志中,例如查询日志、慢查询日志、二进制日志,确保数据库配置文件中存在如下配置项:

Log-raw = OFF

7、认证

7.1 Old_passwords环境变量设置

Old_passwords决定了使用PASSWORD()函数和IDENTIFIED BY 、CREATE USER 、GRANT 等语句是时的hash算法:

0 – authenticate with the mysql_native_password plugin

1 – authenticate with the mysql_old_password plugin

2 – authenticate with the sha256_password plugin

设置为mysql_old_password代表弱hash算法,可以快速通过密码字典进行暴力破解。使用如下命令查询相关值:

SHOW VARIABLES WHERE Variable_name = ‘old_passwords’;

确保返回值不为1。

7.2 secure_auth 选项设置

如果客户端采用Old_passwords发起连接请求,如果服务器端设置了secure_auth,则客户端会拒绝连接请求,可以根据安全需求在配置文件中做相应配置。

7.3 密码保存

确保密码没有明文保存在全局配置文件中。

7.4 确保所有用户都要求使用非空密码登录

执行如下语句查询是否有用户不需要密码即可登录:

SELECT User,host

FROM mysql.user

WHERE (plugin IN(‘mysql_native_password’, ‘mysql_old_password’)

AND (LENGTH(Password) = 0

OR Password IS NULL))

OR (plugin=’sha256_password’ AND LENGTH(authentication_string) = 0);

7.5不存在空账号

使用如下命令查询是否存在空账号:

SELECT user,host FROM mysql.user WHERE user = ”;

8、网络设置

如果mysql数据库服务器与应用是跨信任域部署的,则需要考虑在数据库服务器与应用服务器之间建立ssl通道进行数据传输,不过这种场景一般很少见,在此不详细描述。

CIS科研项目的优势在哪?

CIS是全球首个提倡由世界顶尖学者亲自教学的学术科研项目,在2023年全年就有超过3000人参加,是目前全球高校影响力更大的学术项目。令这么多人趋之若鹜的CIS科研项目到底带给他们什么?下面就来给大家详细解析一下!

CIS的教授覆盖了英美26所顶尖高校,有100多位终身教授,300以上国家级项目领头人,并且拥有多位哥大、NYU、USC、斯坦福、伯克利教授。

在国外各大学录取委员会的更高宗旨或桐就是为教授负责的情况之下,教授基于学术背景和实际接触的推荐,是录取过程中最贴切最有力的背书。而在CIS,你可以参与耶鲁、斯坦福等顶尖院校教授的课题和他们实际接触,有机会获得顶尖教授的推荐信,甚至是教授的私人推荐信,这些推荐信将大幅提升学生申请学校时背景的可信度和学术履历的完整程度。

CIS的科研项目覆盖了理工、商科还是人文社科、艺术等各个类别,而且其学术影响力和含金量,是其他数岩科研机构不能望其项背的。通过CIS你可以了解到世界一流的科研项目是怎么样的,并且实际参与到其中。而且可以进一步向你申请的学校证明:我能正常接受你们的课堂教育!可以胜任科研任务!可以在很大程度上弥补留学申请时科研背景的缺失,提升留学背景,提高申请的成功率。

另外,CIS项目还可以让参与学生获得教授亲笔签署的学术评估Evaluation 、项目Credit Based Transcript、Papers or Reports和Recommendation Letters。

Credit Based Transcript中包括衫毕坦符合 College Board对于 Credit Based 课程要求的教授署名的 Syllabus,以及由项目方开具并由藤校终身 / 系主任级别教授亲自签发的成绩证明;

Papers or Reports将得到 EI/CPCI/SCOPUS 等数据库收录且检索的双成果,也有EI,SCI 级别的国际核心期刊发表的机会。

总而言之,无论是论文、教授推荐信还是最重要的科研项目经历,在CIS获得的这一切都会为学生申请学校提供强有力的助力。

cis 16.6数据库配置的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于cis 16.6数据库配置,CIS 16.6数据库配置:正确设置数据库,确保系统正常运行,求帮忙做一个银行数据库 Oracle,如何做好MySQL安全策略,CIS科研项目的优势在哪?的信息别忘了在本站进行查找喔。


数据运维技术 » CIS 16.6数据库配置:正确设置数据库,确保系统正常运行 (cis 16.6数据库配置)