自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Redis權(quán)限管理體系:客戶端名及用戶名

數(shù)據(jù)庫(kù) Redis
關(guān)于Redis中客戶端名及登錄用戶名的區(qū)別,先簡(jiǎn)單演示至此。但關(guān)于Redis的權(quán)限控制還有很多內(nèi)容,后續(xù)會(huì)繼續(xù)對(duì)如何進(jìn)行賬號(hào)管理及主要應(yīng)用場(chǎng)景進(jìn)行演示。

在Redis6之前的版本中,因安全認(rèn)證的主要方式是使用Redis實(shí)例的密碼進(jìn)行基礎(chǔ)控制,而無法按照不同的應(yīng)用來源配置不同賬號(hào)以及更細(xì)粒度的操作權(quán)限控制來管理。本文先從client list中的信息入手,逐步了解Redis的客戶端名設(shè)置、用戶設(shè)置及權(quán)限控制管理。

一、客戶端名

1、查看客戶端連接情況

 在Redis4版本中,使用 client list 命令查看客戶端連接情況的時(shí)候可以發(fā)現(xiàn),有的name中有名字,而大部分是沒有內(nèi)容的。有的人誤以為這個(gè)名稱是Redis的登錄用戶名。例如:

127.0.0.1:6379> client list
id=7 addr=127.0.0.1:50194 fd=7 name=testuser age=1222 idle=1185 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=client
id=8 addr=127.0.0.1:50238 fd=8 name= age=1180 idle=1174 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=client
id=9 addr=127.0.0.1:51394 fd=9 name= age=3 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=32768 obl=0 oll=0 omem=0 events=r cmd=client

圖片

而client list命令的結(jié)果中的每一列的含義如下:

id: 7, 表示客戶端連接的唯一標(biāo)識(shí)符。
addr: 127.0.0.1:50194,客戶端的 IP 地址和端口號(hào)。
fd: 7,客戶端的文件描述符(File Descriptor)。
name: testuser,客戶端的連接名字,通常是客戶端自己設(shè)置的名字,可以用來標(biāo)識(shí)連接來源
age: 1222,客戶端連接的時(shí)長(zhǎng)為 1222 秒。
idle: 1185,客戶端的空閑時(shí)長(zhǎng)為 1185 秒。
flags: N,客戶端的連接狀態(tài)標(biāo)志,可能包含一系列標(biāo)志,比如 "O" 表示輸出緩沖區(qū)有未發(fā)送的數(shù)據(jù),"S" 表示客戶端是被從服務(wù)器中阻塞的,"N"表示無特殊標(biāo)志
db: 0,客戶端當(dāng)前所在的數(shù)據(jù)庫(kù)。
sub: 0,客戶端訂閱的頻道數(shù)量。
psub: 0,客戶端訂閱的模式數(shù)量。
multi: -1,客戶端不在事務(wù)中(沒有執(zhí)行 MULTI 命令)。如果客戶端在執(zhí)行事務(wù),則顯示事務(wù)的 ID;否則,為 "-1"
qbuf: 0,查詢緩沖區(qū)的長(zhǎng)度,即客戶端還未讀取的查詢緩沖區(qū)的長(zhǎng)度。
qbuf-free: 0, 查詢緩沖區(qū)的空閑長(zhǎng)度長(zhǎng)度。
obl: 0,輸出緩沖區(qū)的長(zhǎng)度,即客戶端還未讀取的輸出緩沖區(qū)的長(zhǎng)度。
oll: 0,輸出緩沖區(qū)的列表長(zhǎng)度。
omem: 0,客戶端的輸出緩沖區(qū)占用內(nèi)存字節(jié)數(shù)。
events: r,表示客戶端關(guān)注可讀事件。
cmd: client,表示客戶端最后執(zhí)行的命令是 CLIENT

可以看出,上面的名稱是客戶端的名稱,而不是用戶名。

2、設(shè)置客戶端連接名

從上面的內(nèi)容可以看出,Redis客戶端連接名是可以自定義設(shè)置的??梢允褂?CLIENT SETNAME 命令進(jìn)行設(shè)置,使用 CLIENT GETNAME 命令進(jìn)行查看。具體操作如下:

# 設(shè)置客戶端名
127.0.0.1:6379> CLIENT SETNAME gjc
OK
#查看客戶端名
127.0.0.1:6379> CLIENT GETNAME 
"gjc"
# 查看客戶端連接信息
127.0.0.1:6379> client list
id=7 addr=127.0.0.1:50194 fd=7 name=testuser age=2338 idle=2301 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=client
id=8 addr=127.0.0.1:50238 fd=8 name= age=2296 idle=2290 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=client
id=9 addr=127.0.0.1:51394 fd=9 name=gjc age=1119 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=32768 obl=0 oll=0 omem=0 events=r cmd=client

圖片

這樣就可以自定義設(shè)置客戶端名了。 

3、客戶端名的優(yōu)缺點(diǎn)

默認(rèn)情況下,大部分人操作Redis都不會(huì)關(guān)注該設(shè)置。但其實(shí)客戶根據(jù)情況進(jìn)行選擇是否設(shè)置。對(duì)于設(shè)置客戶端名的優(yōu)缺點(diǎn)如下:

優(yōu)點(diǎn):

  • 標(biāo)識(shí)連接來源:設(shè)置客戶端名字可以用于標(biāo)識(shí)連接的來源。在一個(gè)多用戶的系統(tǒng)中,可以為每個(gè)用戶設(shè)置一個(gè)唯一的名字,便于識(shí)別和區(qū)分各個(gè)連接。
  • 監(jiān)控和日志:在監(jiān)控 Redis 連接時(shí),通過客戶端名字可以更容易地追蹤和診斷問題。日志中包含客戶端名字可以使日志更具可讀性和可維護(hù)性。
  • 權(quán)限管理:在一些場(chǎng)景下,可以根據(jù)客戶端的名字進(jìn)行權(quán)限管理。通過名字可以判斷某個(gè)連接是否有權(quán)限執(zhí)行特定操作,從而增加安全性。

缺點(diǎn):

  • 額外開銷:每次連接都需要設(shè)置名字,這可能會(huì)增加一些額外的開銷。而名字并不是必須的信息,在連接數(shù)很大的情況下,這可能會(huì)對(duì)性能產(chǎn)生一些影響。
  • 隱私問題:客戶端名字可能包含一些敏感信息,特別是在某些情況下,如果客戶端名字是用戶的用戶名等個(gè)人信息。這可能引發(fā)隱私問題,需要謹(jǐn)慎處理。
  • 不適合匿名連接:在一些場(chǎng)景下,可能存在匿名連接的需求。設(shè)置名字可能不適合匿名用戶,因?yàn)槟涿脩舨幌M┞度魏蝹€(gè)人信息

二、數(shù)據(jù)庫(kù)登錄用戶名

在Redis6版本中執(zhí)行client list操作時(shí),會(huì)看到對(duì)于的信息中多了2列,例如:

127.0.0.1:6479> client list
id=4 addr=127.0.0.1:54352 laddr=127.0.0.1:6479 fd=7 name= age=426 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=26 qbuf-free=40928 argv-mem=10 obl=0 oll=0 omem=0 tot-mem=61466 events=r cmd=client user=default redir=-1

圖片

其中多出兩列的含義是:

user: default,客戶端所屬的用戶。
redir: -1,重定向的標(biāo)志,表示沒有重定向。0: 表示客戶端的連接已經(jīng)被關(guān)閉或者重定向到其他節(jié)點(diǎn)。通常,當(dāng)節(jié)點(diǎn)發(fā)生主從切換或集群中的槽發(fā)生遷移時(shí),客戶端可能會(huì)被重定向到新的節(jié)點(diǎn)。1: 表示客戶端正在等待從節(jié)點(diǎn)對(duì)其進(jìn)行復(fù)制。這通常發(fā)生在 Redis 集群中,當(dāng)主節(jié)點(diǎn)變成從節(jié)點(diǎn)后,它會(huì)等待新的主節(jié)點(diǎn)將數(shù)據(jù)同步至此節(jié)點(diǎn)

其中我們可以發(fā)現(xiàn)增加了user標(biāo)志。這是因?yàn)樵赗edis6版本中增加了訪問權(quán)限控制列表功能(Access Control List,ACL),這個(gè)功能可以極大的提升Redis的安全性。

1、創(chuàng)建用戶名

# 創(chuàng)建用戶,>后面為明文密碼
127.0.0.1:6479> ACL SETUSER testuser1 on >Test123.com
OK
# 列出用戶
127.0.0.1:6479> ACL LIST
1) "user default on #515c217eb413b6aaf09de74bf42c85a6edc09ee7008c6ebedc2981b44bbc0fd3 ~* &* +@all"
2) "user testuser1 on #b6d18faf7ebcfdce9f8782a0aad13c14e2662fcc08072e2738bcb27d04b96188 &* -@all"

2、賬密認(rèn)證登錄

127.0.0.1:6479> AUTH testuser1 Test123.com
OK
127.0.0.1:6479> client list
NOPERM this user has no permissions to run the 'client' command or its subcommand

因新建的用戶沒有查看client list的權(quán)限,因此另起一個(gè)會(huì)話用default用戶查看連接情況

127.0.0.1:6479> client list
id=4 addr=127.0.0.1:54352 laddr=127.0.0.1:6479 fd=7 name= age=9319 idle=12 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 argv-mem=0 obl=0 oll=0 omem=0 tot-mem=20504 events=r cmd=client user=testuser1 redir=-1
id=5 addr=127.0.0.1:56838 laddr=127.0.0.1:6479 fd=8 name= age=6773 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=26 qbuf-free=40928 argv-mem=10 obl=0 oll=0 omem=0 tot-mem=61466 events=r cmd=client user=default redir=-1
127.0.0.1:6479>

可以看到id=4的連接是新創(chuàng)建的testuser1賬號(hào)登錄的了。

三、結(jié)語

關(guān)于Redis中客戶端名及登錄用戶名的區(qū)別,先簡(jiǎn)單演示至此。但關(guān)于Redis的權(quán)限控制還有很多內(nèi)容,后續(xù)會(huì)繼續(xù)對(duì)如何進(jìn)行賬號(hào)管理及主要應(yīng)用場(chǎng)景進(jìn)行演示。

責(zé)任編輯:姜華 來源: 數(shù)據(jù)庫(kù)干貨鋪
相關(guān)推薦

2024-01-04 07:50:59

2024-01-08 08:36:01

RedisACL 配置持久化數(shù)據(jù)庫(kù)

2011-07-22 15:01:28

MongoDB權(quán)限管理

2015-03-09 10:58:01

MongodbMySQL

2019-07-05 17:00:33

Redis數(shù)據(jù)庫(kù)可視化管理

2017-03-20 19:01:20

Linux管理員系統(tǒng)用戶

2010-06-23 09:23:56

SQL Server

2010-09-27 14:48:12

SQL用戶名

2012-06-27 21:22:05

云中書城移動(dòng)客戶端

2009-12-21 09:05:22

2010-04-14 10:58:09

2022-03-22 18:24:50

數(shù)據(jù)安全加密

2018-07-12 05:45:00

2009-06-19 14:27:34

2017-07-27 08:16:36

2011-08-17 10:10:59

2021-09-22 15:46:29

虛擬桌面瘦客戶端胖客戶端

2009-10-21 16:34:03

Oracle用戶名重建索引

2019-08-26 19:24:55

Podman容器Linux

2010-10-29 11:51:30

oracle用戶名
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)