一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數(shù)據(jù)庫技術(shù)|

服務(wù)器之家 - 數(shù)據(jù)庫 - Redis - Redis權(quán)限管理體系:客戶端名及用戶名

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

2023-12-27 05:00未知服務(wù)器之家 Redis

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

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

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

一、客戶端名

1、查看客戶端連接情況

 在Redis4版本中,使用 client list 命令查看客戶端連接情況的時(shí)候可以發(fā)現(xiàn),有的name中有名字,而大部分是沒有內(nèi)容的。有的人誤以為這個名稱是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

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

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

id: 7, 表示客戶端連接的唯一標(biāo)識符。
addr: 127.0.0.1:50194,客戶端的 IP 地址和端口號。
fd: 7,客戶端的文件描述符(File Descriptor)。
name: testuser,客戶端的連接名字,通常是客戶端自己設(shè)置的名字,可以用來標(biāo)識連接來源
age: 1222,客戶端連接的時(shí)長為 1222 秒。
idle: 1185,客戶端的空閑時(shí)長為 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ù)庫。
sub: 0,客戶端訂閱的頻道數(shù)量。
psub: 0,客戶端訂閱的模式數(shù)量。
multi: -1,客戶端不在事務(wù)中(沒有執(zhí)行 MULTI 命令)。如果客戶端在執(zhí)行事務(wù),則顯示事務(wù)的 ID;否則,為 "-1"
qbuf: 0,查詢緩沖區(qū)的長度,即客戶端還未讀取的查詢緩沖區(qū)的長度。
qbuf-free: 0, 查詢緩沖區(qū)的空閑長度長度。
obl: 0,輸出緩沖區(qū)的長度,即客戶端還未讀取的輸出緩沖區(qū)的長度。
oll: 0,輸出緩沖區(qū)的列表長度。
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

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

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

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

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

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

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

缺點(diǎn):

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

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

在Redis6版本中執(zhí)行client list操作時(shí),會看到對于的信息中多了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

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

其中多出兩列的含義是:

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

其中我們可以發(fā)現(xiàn)增加了user標(biāo)志。這是因?yàn)樵赗edis6版本中增加了訪問權(quán)限控制列表功能(Access Control List,ACL),這個功能可以極大的提升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)限,因此另起一個會話用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賬號登錄的了。

三、結(jié)語

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

延伸 · 閱讀

精彩推薦
  • Redisredis中如何使用lua腳本讓你的靈活性提高5個逼格詳解

    redis中如何使用lua腳本讓你的靈活性提高5個逼格詳解

    這篇文章主要給大家介紹了關(guān)于redis中如何使用lua腳本讓你的靈活性提高5個逼格的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具...

    一線碼農(nóng)5812019-11-18
  • RedisRedis的配置、啟動、操作和關(guān)閉方法

    Redis的配置、啟動、操作和關(guān)閉方法

    今天小編就為大家分享一篇Redis的配置、啟動、操作和關(guān)閉方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧 ...

    大道化簡5312019-11-14
  • RedisRedis如何實(shí)現(xiàn)數(shù)據(jù)庫讀寫分離詳解

    Redis如何實(shí)現(xiàn)數(shù)據(jù)庫讀寫分離詳解

    Redis的主從架構(gòu),能幫助我們實(shí)現(xiàn)讀多,寫少的情況,下面這篇文章主要給大家介紹了關(guān)于Redis如何實(shí)現(xiàn)數(shù)據(jù)庫讀寫分離的相關(guān)資料,文中通過示例代碼介紹...

    羅兵漂流記6092019-11-11
  • Redis詳解Redis復(fù)制原理

    詳解Redis復(fù)制原理

    與大多數(shù)db一樣,Redis也提供了復(fù)制機(jī)制,以滿足故障恢復(fù)和負(fù)載均衡等需求。復(fù)制也是Redis高可用的基礎(chǔ),哨兵和集群都是建立在復(fù)制基礎(chǔ)上實(shí)現(xiàn)高可用的...

    李留廣10222021-08-09
  • RedisRedis 事務(wù)知識點(diǎn)相關(guān)總結(jié)

    Redis 事務(wù)知識點(diǎn)相關(guān)總結(jié)

    這篇文章主要介紹了Redis 事務(wù)相關(guān)總結(jié),幫助大家更好的理解和學(xué)習(xí)使用Redis,感興趣的朋友可以了解下...

    AsiaYe8232021-07-28
  • RedisRedis全量復(fù)制與部分復(fù)制示例詳解

    Redis全量復(fù)制與部分復(fù)制示例詳解

    這篇文章主要給大家介紹了關(guān)于Redis全量復(fù)制與部分復(fù)制的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Redis爬蟲具有一定的參考學(xué)習(xí)...

    豆子先生5052019-11-27
  • Redisredis 交集、并集、差集的具體使用

    redis 交集、并集、差集的具體使用

    這篇文章主要介紹了redis 交集、并集、差集的具體使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友...

    xiaojin21cen10152021-07-27
  • Redisredis實(shí)現(xiàn)排行榜功能

    redis實(shí)現(xiàn)排行榜功能

    排行榜在很多地方都能使用到,redis的zset可以很方便地用來實(shí)現(xiàn)排行榜功能,本文就來簡單的介紹一下如何使用,具有一定的參考價(jià)值,感興趣的小伙伴們...

    乘月歸5022021-08-05
主站蜘蛛池模板: 日本久本草精品 | 我在厨房摸岳的乳HD在线观看 | 亚洲女bbwxxxx另类 | 免费标准高清看机机桶机机 | 桃色导航| 亚洲国产高清视频 | 久久国产热视频99rev6 | 亚洲色图第四页 | 亚洲男gay同性同志 亚洲免费在线看 | 国产日韩欧美综合一区二区三区 | 四虎国产精品免费久久麻豆 | 精品午夜久久福利大片免费 | 波多野结衣两女调教 | 日本春菜花在线中文字幕 | 青青草综合网 | 四缺一写的小说 | 亚洲swag精品自拍一区 | 亚洲国产精品一在线观看 | 白丝捆绑调教 | 四虎影院2022 | 爱情岛永久成人免费网站 | 亚洲欧美日韩国产综合专区 | 国产一级黄色网 | 国产精品国产高清国产专区 | 美女福利视频一区二区 | 大胸被c出奶水嗷嗷叫 | 日本公乱妇视频 | 狠狠色婷婷丁香六月 | 免费观看国产精品 | 午夜 在线播放 | 精品国产麻豆免费人成网站 | 国产欧美另类久久精品91 | 久久久免费观成人影院 | 久久精品AV一区二区无码 | 高级黄色片 | 国产夜趣福利第一视频 | 国产激情久久久久影院小草 | 无人区1在线观看 | 麻豆网站视频国产在线观看 | 日韩精品一区二区三区免费视频 | 精品小视频在线观看 |