データベースの強化

目次

MySQLの強化

MySQLをデプロイする

1.安装MySql
yum install mariadb mariadb-server -y


2.启动MySql服务
systemctl start mariadb.service


3.启动MySql,默认为空密码
mysql -uroot -p

# 修改root密码
update mysql.user set password=password('123123') where user='root';

# 刷新密码
flush privileges;


4.重新用密码登录mysql
mysql -uroot -p123123

rootパスワードを忘れた場合

1.修改配置文件
vim /etc/my.cnf
# 在 [mysqld] 中加入如下参数,就可以免密登录了
skip-grant-tables

2.重启mysql
systemctl restart mariadb.service

3.登录MySQL,修改root密码,空密码
mysql -uroot -p
update mysql.user set password=password('123123') where user='root';

4.删除配置文件的skip-grant-tables参数

5.重启mysql
systemctl restart mariadb.service

不要なデータベースとユーザーを削除する

1.删除测试库
show databases;
drop database test;


2.删除非root用户
delete from mysql.user where not (user='root');


3.删除密码为空的root用户
delete from mysql.user where user='root' and password='';
flush privileges;

DBA ユーザー名の変更

update を使用して、mysql ライブラリのユーザー テーブルの情報を更新します。

update mysql.user set user="luobo" where user="root";
flush privileges;

アカウント管理時に暗号化アルゴリズムを使用する

アカウントを追加するとき、パスワードは暗号化されます。

1.创建测试文件
create database test default charset utf8;
create table test.t1(id int(10),name varchar(20),pass varchar(20));


2.!!!创建加密密码
insert into test.t1 values (1,'test',password(1111111));

MySQL 起動ユーザーを変更する

1.修改my.cnf文件
vim /etc/my.cnf

# 加入如下内容
[mysqld]
user=mysql

2.重启mysql
systemctl restart mariadb.service

リモート接続の数を制限する

1.修改my.cnf文件,去掉注释符号
vim /etc/my.cnf

# 加入如下内容
[mysqld]
max_connections=5
max_user_connections=2


2.重启mysql
systemctl restart mariadb.service

リモート管理データベースを閉じる

この方法では、他のユーザーは -h パラメーターを介してデータベースに接続できなくなります。

1.修改my.cnf文件,添加或去掉注释符号
vim /etc/my.cnf

# 添加如下内容
[mysqld]
skip-networking


2.重启mysql
systemctl restart mariadb.service

MySqlコマンド履歴を消去する

1.注意清理家目录中的.mysql_history
ln -s /dev/null /root/.mysql_history

2.禁止使用明文模式登录mysql
mysql -uroot -p123123

3.应使用隐藏密码方式
mysql -uroot -p

MYSql によるローカル ファイルの読み取りを無効にする

1.修改my.cnf文件,加入关闭信息
vim /etc/my.cnf

# 添加如下内容
[mysqld]
local_infile=0



或者secure_file_priv=
为空时不能查看
如果secure_file_priv的值为NULL,那么就不能将文件写进数据库中
secure_file_priv为某一目录
只能操作特定目录的文件,其余不能


2.重启mysql
systemctl restart mariadb.service



或者添加启动选项
用脚本开启mysql的禁止读取本地文件功能
mysqld_safe --local_infile=0 --user=mysql

load_file() は、selectload_file("E:/Desktop/2.txt")
を直接表示できます。

ファイルへのテーブルのエクスポートを無効にする

1.在mysql中修改用户的文件权限
update mysql.user set File_priv='N' where user='root';

2.刷新权限
flush privileges;


3.检查配置文件是否存在不合理信息
grep secure_file_priv /etc/my.cnf
secure_file_priv=xxx路径

毎日のバックアップデータベース

1.添加配置文件
vim my.cnf
[mysqld]
# 开启binlog功能
log-bin=mysql-bin


2.手动备份数据库可以防止密码铭文储存
mysqldump -p123123 --user=root --all-databases --flush-privileges --lock-all-tables --master-data=1 --flush-logs --triggers --routines --events --hex-blob > /opt/$(date +%F).sql


3.删除测试数据库
drop database test;


4.还原数据库
mysql -u用户名 -p密码  数据库名 < 备份的文件名
mysql -uroot -p123123  < /opt/2023-06-05.sql 

Redisの強化

Redis をデプロイする

1.安装编译安装需要的gcc环境
yum install gcc gcc-c++ -y

2.解压redis
tar fx redis-5.0.7.tar.gz 

3.移动redis到 /usr/local目录下
cp -r redis-5.0.7 /usr/local/redis

4.切换到 /usr/local/redis/
cd /usr/local/redis/

5.编译安装
make && make install

6.启动redis服务
/usr/local/redis/src/redis-server &


7.测试客户端连接
/usr/local/redis/src/redis-cli 
# 验证密码 
auth 123123


!!! 重启redis服务,读取配置文件
/usr/local/redis/src/redis-server /usr/local/redis/redis.conf  &

Redis サービスへのネットワーク アクセスを無効にする

サービスがローカル ループバック アドレスをリッスンするように構成ファイルを変更します。

修改redis的配置文件

vim /usr/local/redis/redis.conf 
# 确保开启仅本地绑定连接
bind 127.0.0.1

ファイアウォールを設定してトラフィックをフィルタリングする

アクセス元のセキュリティを確保するために iptables ファイアウォールを設定する

# 设置iptables防火墙,确保访问源安全
iptables -A INPUT -s 10.0.1.110 -p tcp --dport 6379 -j ACCEPT

リスクの高いコマンドを無効にする

1.编辑配置文件
# 在配置文件中,更名为空白或者改为自定义命令
vim /usr/local/redis/redis.conf 
rename-command CONFIG ""
rename-command flushall ""
rename-command flushdb ""
rename-command shutdown "shutdown_test"

2.重启redis服务,读取配置文件
/usr/local/redis/src/redis-server /usr/local/redis/redis.conf  &

パスワード認証をオンにする

設定ファイルに実行パスワードを設定する

1.编辑配置文件
vim /usr/local/redis/redis.conf 
# 开启密码验证
# requirepass foobared
requirepass 123123


2.重启redis,读取配置文件
/usr/local/redis/src/redis-server /usr/local/redis/redis.conf  &

3.密码验证
/usr/local/redis/src/redis-cli
auth 123123

最小限の権限を持つユーザーとしてメイン プログラムを実行します。

通常のアカウントを作成し、通常のアカウントを使用してプログラムを実行します

1.创建普通用户
useradd -s /sbin/nologin redis

2.切换到普通用户,运行redis
su -m redis -c /usr/local/redis/src/redis-server /usr/local/redis/redis.conf

3.查看运行进程属于哪个用户
[root@bogon ~]# lsof -i:6379
COMMAND     PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
redis-ser 53719 redis    6u  IPv6  94757      0t0  TCP *:6379 (LISTEN)
redis-ser 53719 redis    7u  IPv4  94758      0t0  TCP *:6379 (LISTEN)

バックアップと復元

!!!备份数据
1.备份数据库
127.0.0.1:6379> bgsave

# 获取备份数据的安装目录
127.0.0.1:6379> config get dir
1) "dir"
2) "/root"


2.查看备份数据
[root@bogon src]# ls /root/ |grep dump
dump.rdb



!!!还原数据
将备份好的文件放到安装目录,重启服务器即可

mongodbの強化

展開する

1.解压mongodb
tar fx mongodb-linux-x86_64-rhel70-4.2.3.tgz

2.移动并重命名
cp -r mongodb-linux-x86_64-rhel70-4.2.3 /usr/local/mongodb

3.切换到/usr/local/mongodb/
cd /usr/local/mongodb/

4.创建目录
mkdir -p data/db logs etc

5.创建并写入配置文件
vim /usr/local/mongodb/etc/mongodb.conf
dbpath=/usr/local/mongodb/data/db
logpath=/usr/local/mongodb/logs/mongodb.log
fork=true
journal=false


6.启动mongodb
/usr/local/mongodb/bin/mongod --config /usr/local/mongodb/etc/mongodb.conf

6.5关闭mongodb
/usr/local/mongodb/bin/mongod --shutdown -f /usr/local/mongodb/etc/mongodb.conf


7.查看端口
lsof -i:27017


8.连接mongodb
/usr/local/mongodb/bin/mongo

# 查看数据库
show dbs;

# 切换到数据库admin
use admin

ログとデータベースの保存場所を決定する

構成ファイルで指定されるディレクトリの場所を設定します。

1.创建并添加配置文件
vim /usr/local/mongodb/etc/mongodb.conf 

# 数据存放路径
dbpath=/usr/local/mongodb/data/db
# 日志存放路径
logpath=/usr/local/mongodb/logs/mongodb.log


2.重启mongodb,使配置生效
# 关闭mongodb
/usr/local/mongodb/bin/mongod --shutdown -f /usr/local/mongodb/etc/mongodb.conf

# 启动mongodb
/usr/local/mongodb/bin/mongod --config /usr/local/mongodb/etc/mongodb.conf

デフォルトのポートを変更する

1.修改配置文件
vim /usr/local/mongodb/etc/mongodb.conf
# 更改默认端口
port=28888


2.重启mongodb
# 关闭mongodb
/usr/local/mongodb/bin/mongod --shutdown -f /usr/local/mongodb/etc/mongodb.conf

# 启动mongodb
/usr/local/mongodb/bin/mongod --config /usr/local/mongodb/etc/mongodb.conf


3.连接mongo时使用密令加选项
/usr/local/mongodb/bin/mongo --port 28888

ビジネス フロー ネットワーク カードのみを監視します

設定ファイルにポート情報を追加する

1.修改配置文件
vim /usr/local/mongodb/etc/mongodb.conf 
# 加入网卡绑定信息
bind_ip=10.0.1.110


2.重启mongodb
# 关闭mongodb
/usr/local/mongodb/bin/mongod --shutdown -f /usr/local/mongodb/etc/mongodb.conf

# 启动mongodb
/usr/local/mongodb/bin/mongod --config /usr/local/mongodb/etc/mongodb.conf


3.登录时需输入
/usr/local/mongodb/bin/mongo 10.0.1.110:27017

認証機能をオンにする

設定ファイルで認証を有効にする

1.无认证状态下对数据库操作
# 连接mongodb
/usr/local/mongodb/bin/mongo

# 切换到admin
use admin

# 创建认证用户
db.createUser({user:"test1",pwd:"123.com",roles:[{role:"userAdminAnyDatabase",db:"admin"}]})


2.!!!自建配置文件,开启认证功能
vim /usr/local/mongodb/etc/mongodb.conf
# 加入如下参数
auth=true


3.重启服务
# 关闭mongodb
/usr/local/mongodb/bin/mongod --shutdown -f /usr/local/mongodb/etc/mongodb.conf

# 启动mongodb
/usr/local/mongodb/bin/mongod --config /usr/local/mongodb/etc/mongodb.conf


4.再次创建test2,发现失败,需要先认证用户名密码后再执行
# 连接mongodb
/usr/local/mongodb/bin/mongo

# 切换到admin
use admin

# 此时创建是不通过的,需要认证后才能创建
db.createUser({user:"test2",pwd:"123.com",roles:[{role:"userAdminAnyDatabase",db:"admin"}]})


5.输入认证命令后,再次创建,成功创建
db.auth('test1','123.com')
# 再次创建,发现可以成功创建了
db.createUser({user:"test2",pwd:"123123",roles:[{role:"userAdminAnyDatabase",db:"admin"}]})

バックアップとリカバリ

認証がオンになっているため、専用のアカウントを作成する必要があります

1.连接mongodb
/usr/local/mongodb/bin/mongo
# 切换admin
use admin
# 认证命令
db.auth('test1','123.com')


2.创建备专用份账户
db.createUser({user:"bkuser",pwd:"123123",roles:[{role:"backup",db:"admin"}]})


3.创建专用恢复账户
db.createUser({user:"reuser",pwd:"123123",roles:[{role:"restore",db:"admin"}]})


4.使用备份账户备份指定数据库
# 备份admin数据库到/tmp目录中
/usr/local/mongodb/bin/mongodump  --host 127.0.0.1 --port 27017 -d admin -o /tmp/ -u bkuser -p 123123 --authenticationDatabase admin


5.使用恢复账户恢复数据库
/usr/local/mongodb/bin/mongorestore  --host 127.0.0.1 --port 27017 -u reuser -p 123123 -d mytest /tmp/admin --authenticationDatabase admin


6.查看添加的mytest文件
# 连接mongodb
/usr/local/mongodb/bin/mongo
# 切换到admin
use admin
# 输入认证命令
db.auth('test1','123.com')
# 查看所有数据库,发现多了一个mytest
> show dbs;
admin   0.000GB
config  0.000GB
local   0.000GB
mytest  0.000GB   !!!

MSSql

MSSql=SQL_サーバー

管理者のログイン情報を変更する

SQL Server Management Studio変更

saアカウントのログイン名とパスワードを変更する

重命名

セキュリティ→ログイン→sa(右クリック:名前の変更)

ここに画像の説明を挿入します

パスワードを変更する

セキュリティ→ログイン→sa(右クリック:プロパティ)

ここに画像の説明を挿入します

ここに画像の説明を挿入します

操作権限を最小限に抑える

セキュリティ→ログイン(右クリック:新規ログイン)

ここに画像の説明を挿入します

ここに画像の説明を挿入します

各サーバーの役割には異なる権限があり、実際のニーズに応じて選択してください
ここに画像の説明を挿入します

各データベース ロールには異なる権限があり、実際のニーズに応じて選択してください

ここに画像の説明を挿入します

サーバーの役割の分類

sysadmin:固定服务器角色的成员可以在服务器中执行任何活动
serveradmin:固定服务器角色的成员可以更改服务器范围内的配置选项并关闭服务器
securityadmin:固定服务器角色的成员管理登录名及其属性。他们可以GRANT、DENY和REVOKE 服务器级权限。他们还可以GRANT、DENY和REVOKE 数据库级权限(如果他们具有数据库的访问权限)。此外,他们还可以重置 SQL Server 登录名的密码。
processadmin:固定服务器角色的成员可以终止在SQLServer 实例中运行的进程
setupadmin:固定服务器角色的成员可以添加和删除链接服务器
bulkadmin:固定服务器角色的成员可以运行BULKINSERT语
diskadmin:固定服务器角色用于管理磁盘文件
dbcreator:固定服务器角色的成员可以创建、更改、删除和还原任何数据库
public:每个SQLServer 登录名均属于 public 服务器角色

データベースの役割の分類

db_owner:固定数据库角色的成员可以执行数据的所有配置和维护活动,还可以删除数据库
db_securityadmin:固定数据库角色的成员可以修改色成员身份和管理权限。向角色中添加主体可能会导致意外的权限升级
db_accessadmin:周定数据库角色的成员可以为 Windows 登录名、Windows组和SQLServer 登录名添加或删除数据库访问权限
db_backupoperator:固定数据库角色的成员可以备份数据库
db_ddladmin:固定数据角色的成员可以在数据中运行任何数据定义语言(DDL)命令
db_datawriter:固定数据库角色的成员可以在所有用户表中添加删除或更改数据db_datareader:固定数据库角色的成员可以从所有用户表中读取所有数据
db_denydatawriter:固定数据库角色的成员不能添加、修改或删除数据库内用户表中的任何数据
db_denydatareader: 固定数据库角色的成员不能读取数据库内用户表中的任何数据

データベースへのシステム管理者のログインを無効にする

セキュリティ→ログイン→WINxxx\Administrator→プロパティ→ステータス

ここに画像の説明を挿入します

データベースでの変更追跡を有効にする

データベース→システム データベース→データベース→プロパティ→変更追跡

ここに画像の説明を挿入します

トランザクションログのリモートバックアップ

データベース (右クリック: 新しいデータベース)
ここに画像の説明を挿入します

データベース→テスト(右クリック:プロパティ)→トランザクションログ転送→バックアップ設定

ここに画像の説明を挿入します

ここに画像の説明を挿入します

ログイン監査ログを変更する

接続インスタンス (右クリック: [プロパティ]) → [セキュリティ]

ここに画像の説明を挿入します

データベースへのリモート ログインを無効にする

インスタンスの接続 (右クリック: [プロパティ]) → 接続

ここに画像の説明を挿入します

危険なストアド プロシージャを削除する

データベース→システムデータベース→プログラマビリティ→拡張ストアドプロシージャ→システム拡張ストアドプロシージャ→実態に応じて不要なストアドプロシージャを削除

ここに画像の説明を挿入します

ネットワークカードのリスニングアドレスを変更する

ネットワーク プロトコルを開始する必要がある場合は、TCP/IP 構成を変更することをお勧めします。

SQL_Server 構成マネージャーの変更

SQL Server ネットワーク構成 (32 ビット)→MSSQLSERVER プロトコル→TCP/IP (右クリック: プロパティ)→IP アドレス

ここに画像の説明を挿入します

最小権限のスタートアップ サービス アカウントを作成する

lusrmgr.msc に新しいアカウントを作成し、ユーザー グループから削除し、リモート コントロールを削除します。

ここに画像の説明を挿入します

ユーザーグループの削除

ここに画像の説明を挿入します

リモコンを取り外します

ここに画像の説明を挿入します

SQLserver 構成マネージャーを開き、サービスのプロパティを変更します。

SQL Server サービス→SQL Server (右クリック: プロパティ)

ここに画像の説明を挿入します

アカウントを作成したばかりのテスト ユーザーに変更します

ここに画像の説明を挿入します

現時点では、SQL Server のログイン ID は test です。

ここに画像の説明を挿入します

ネットワーク プロトコルを開始する必要がある場合は、TCP/IP 構成を変更することをお勧めします。

SQL_Server 構成マネージャーの変更

SQL Server ネットワーク構成 (32 ビット)→MSSQLSERVER プロトコル→TCP/IP (右クリック: プロパティ)→IP アドレス

[外部リンク画像は転送中です...(img-JG0V6EkB-1686133995231)]

最小権限のスタートアップ サービス アカウントを作成する

lusrmgr.msc に新しいアカウントを作成し、ユーザー グループから削除し、リモート コントロールを削除します。

新しいアカウントの作成テスト [外部リンクの画像は転送されています...(img-Ckc2kOrH-1686133995232)]

ユーザーグループの削除

[外部リンク画像は転送中です...(img-J5IkKKGH-1686133995232)]

リモコンを取り外します

[外部リンク画像を転送中...(img-scDdhL5v-1686133995232)]

SQLserver 構成マネージャーを開き、サービスのプロパティを変更します。

SQL Server サービス→SQL Server (右クリック: プロパティ)

[外部リンク画像を転送中...(img-aeRtU1Wt-1686133995233)]

アカウントを作成したばかりのテスト ユーザーに変更します

[外部リンク画像は転送中です...(img-2xddUNfV-1686133995233)]

現時点では、SQL Server のログイン ID は test です。

[外部リンク画像は転送中です...(img-12qjiBms-1686133995233)]

おすすめ

転載: blog.csdn.net/m0_51553670/article/details/131093775