主頁 > 移動端開發 > Mysql用戶與權限操作

Mysql用戶與權限操作

2020-09-29 05:42:15 移動端開發

1.用戶與權限概述

用戶是資料庫的使用者和管理者,
MySQL通過用戶的設定來控制資料庫操作人員的訪問與操作范圍
服務器中名為mysqI的資料庫,用于維護資料庫的用戶以及權限的控制和管理,
MySQL中的所有用戶資訊都保存在mysql.user資料表中,

根據mysql.user表欄位的功能可將其分為6類

  • 客戶端訪問服務器的賬號欄位

Host和User欄位共同組成的復合主鍵用于區分MySQL中的賬戶,

  1. User欄位用于代表用戶的名稱
  2. Host欄位表示允許訪問的客戶端IP地址或主機地址
  3. 當Host的值為“*”時,表示所有客戶端的用戶都可以訪問,
mysql> SELEC Thost, user FROM mysql.user;

在這里插入圖片描述

root:默認的超級用戶,
session: MySQL5.7新增用戶,用于用戶身份驗證,
sys:MySQL5.7新增用戶,用于系統模式物件的定義,防止DBA(資料庫管理員)重命名或洗掉root用戶時發生錯誤,

  • 身份驗證欄位

在MySQL5.7中,mysql.user表中已不再包含Password欄位,而是使用plugin和authentication_string欄位保存用戶身份驗證的資訊,

  1. plugin欄位用于指定用戶的驗證插件名稱
  2. authentication_string欄位是根據plugin指定的插件演算法對賬戶明文密碼(如123456)加密后的字串
mysql> SELECT plugin,authentication_string FROM mysql.user
->WHERE user='root';

在這里插入圖片描述

MySQL中root用戶的默認驗證插件名為mysql_native_password,
authentication_string欄位保存的則是一串不能看出具體含義的值,相對于能夠直接看懂的明文密碼(如123456),它是經過加密處理的暗碼,
其他與身份驗證的賬號密碼相關的欄位還有password_expired(密碼是否過期)、password_last_changed(密碼最后一次修改的時間)以及password_lifetime(密碼的有效期),

  • 安全連接的欄位

判斷當前連接是否符合SSL安全協議,

  1. ssl_type:用于保存安全連接的型別,它的可選值有"(空)、ANY(任意型別)、X509(X509證書)、SPECIFIED(規定的)四種,
  2. ssl_cipher:用于保存安全加密連接的特定密碼
  3. x509_issuer:保存由CA簽發的有效的X509證書
  4. x509_subject:保存包含主題的有效X509證書
mysql>SHOW VARIABLES LIKE 'have_openssl';

在這里插入圖片描述

  • 資源限制的欄位
  1. 以“max_”開頭的欄位,保存對用戶可使用的服務器資源的限制,
  2. 用來防止用戶登錄MySQL服務器后的不法或不合規范的操作浪費服務器的資源,
  3. 用戶資源限制欄位默認值均為0,表示對此用戶沒有任何的資源限制,
欄位含義
max_ _questions保存每小時允許用戶執行查詢操作的最多次數
max_ updates保存每小時允許用戶執行更新操作的最多次數
max_ connections保存每小時允許用戶建立連接的最多次數
max_ user_ connections保存允許單個用戶同時建立連接的最多數量
  • 權限欄位

以“priv”結尾的欄位一共有29個,這些欄位保存了用戶的全域權限,如Select_ priv 查詢權限、Insert_ priv插入權限,Update_ priv更 新權限等,
user表對應的權限欄位的資料型別都是ENUM列舉型別,取值只有N或Y兩種

  1. N表示該用戶沒有對應權限,默認值都為N,
  2. Y表示該用戶有對應權限,
  • 賬戶是否鎖定的欄位

account_ locked字 段用于保存當前用戶是鎖定、還是解鎖狀態,

  1. 該欄位是一個列舉型別,當其值為N時表示解鎖,此用戶可以用于連接服務器,
  2. 當其值為Y時表示該用戶已被鎖定,不能用于連接服務器使用,

2.用戶管理

1.創建用戶

  • 由于MySQL中所有用戶的資訊都保存在mysql.user表中,創建用戶可以直接利用root用戶登錄MySQL服務器后,向mysql.user表中插入記錄,但是在開發中為保證資料的安全,并丕推茬使用此方式創建用戶,
  • 采用MySQL提供的CREATE USER陳述句創建用戶,
  • 使用CREATE USER陳述句每創建一個 新用戶,都會在mysql.user表中添加一條記錄,同時服務器會自動修改相應的授權表
  • 該陳述句創建的新用戶默認情況下沒有任何權限,需要使用GRANT進行授權,

創建用戶語法

CREATE USER [IF NOT EXISTS]
賬戶名[用戶身份驗證選項][,賬戶名[用戶身份驗證選項].
[WITH資源控制選項][密碼管理選項|賬戶鎖定選項]

CREATE USER可以一次創建多個用戶,多個用戶之間使用逗號分隔,
賬戶名是由“用戶名@主機地址”組成,
其余選項在創建用戶時,若未設定則使用默認值
用戶名的設定不能超過32個字符,且區分大小寫,但是主機地址不區分大小寫,

選項默認值
用戶身份驗證選項由default_ authentication _plugin 系統變數定義的插件進行身份驗證
加密連接協議選項NONE
資源控制選項N (表示無限制)
密碼管理選項PASSWORD EXPIRE DEFAULT
用戶鎖定選項ACCOUNT UNLOCK
  • 用戶身份驗證選項的設定僅適用于其前面的用戶名,可將其理解為某個用戶的私有屬性,
  • 其余的選項對宣告中的所有用戶都有效,可以將其理解為全域屬性,
1.創建最簡單的用戶
mysql> CREATE USER' test1' ;
Query OK, 0 rows af fected .(0.00 sec)
mysql> SELECT host, user FROM mysql . user;

在這里插入圖片描述

2.創建含有密碼的用戶
mysql> CREATE USER 'test2' @ 'localhost' IDENTIFIED BY ' 123456' ;
Query OK,0 rows affected (0.00 sec)

在這里插入圖片描述

3.同時創建多個用戶
mysql> CREATE USER
-> 'test3'@' localhost' IDENTIFIED BY '333333' ,
-> 'test4'@' localhost' IDENTIFIED BY '444444' ;
Query OK,0 rows affected (0.01 sec)

多個用戶之間使用逗號分隔,
在創建每個用戶時可以單獨為其設定密碼,省略用戶身份驗證選項時,表明此用戶在登錄服務器時可以免密登錄,但為了保證資料安全,不推薦用戶這樣做,

在創建用戶時,可以添加WITH直接為用戶指定可操作的資源范圍,如登錄的用戶在一小時內可以查詢資料的次數等,

選項描述
MAX_ QUERIES PER_ HOUR在任何一個小時內,允許此用戶執行多少次查詢
MAX_ UPDATES_ PER_ HOUR在任何一個小時內,允許此用戶執行多少次更新
MAX_ CONNECTIONS_ PER_ HOUR在任何一個小時內,允許此用戶執行多少次服務器連接
MAX_ USER_ CONNECTIONS限制用戶同時連接服務器的最大數量

MAX_USER_CONNECTIONS選 項的值為0時,服務器將根據max_ user_ connections 系統變數的值確定用戶的同時連接數,若此變數值也為0,表示對該用戶沒有限制,
MAX_QUERIES_PER_HOUR選項不會計算從快取中查詢資料的次數,

例:限制其每小時最多可以更新10次

mysql> CREATE USER
-> 'test5'@' localhost' IDENTIFIED BY ' 555555'
-> WITH MAX_ UPDATES_ _PER_ HOUR 10;
Query OK,0 rows affected (0.00 sec)

查看user表的max_ updates欄位

mysql> SELECT max_ _updates FROM user WHERE user='test5' ;
+-------------+
|max_ updatesI|
+-------------+
|	  10	  | 
1 row in set (0.00 sec)

2.修改密碼

  • ALTER USER是更改密碼的首選SQL陳述句,推薦使用,
  • 第2種語法可能會被記錄到服務器的日志或客戶端的歷史檔案中,會有密碼泄露.的風險,因此建議用戶盡量少的使用此方式設定密碼,
為指定用戶設定密碼
mysql> ALTER USER 'test1' @ '&' IDENTIFIED BY '123456' ;
Query 0K,0 rows affected (0.00 sec)
為登錄戶設定密碼
mysql> ALTER USER USER() IDENTIFIED BY '000000' ;
Query 0K,0 rows affected (0.00 sec)

3.修改用戶

用戶創建完成后,管理員可以通過MySQL提供的專門SQL陳述句修改用戶的密碼身份驗證的方式資源限制密碼的屬性、以及賬戶的鎖定和解鎖的狀態

ALTER USER [IF EXISTS]
賬戶名[用戶身份驗證選項][,賬戶名[用戶身份驗證選項]].
[WITH資源限制選項][密碼管理選項|賬戶鎖定選項]

ALTER USER可同時修改一個或多個用戶,多個用戶之間使用逗號(,)分隔,
語法中選項的可選值與創建用戶時的選項完全相同,
每個修改的用戶,都會更新其在mysql.user表中對應的欄位值,而未修改的欄位仍然保留它原來的值,

例:修改用戶驗證插件、密碼以及密碼過期時間

mysql> ALTER USER test1
-> IDENTIFIED WITH sha256_ password BY '111111 '
-> PASSWORD EXPIRE;
Query OK,0 rows affected (0.01 sec)

查看修改后戶的密碼

mysq1> SELECT authentication_ string FROM mysql. user
-> WHERE user='test1' AND plugin= 'sha256_ password'

在這里插入圖片描述
解鎖用戶

mysql> ALTER USER 'test7'@ ' localhost' ACCOUNT UNLOCK;
Query 0K,0 rows affected (0.00 sec)

同時修改多個戶資源

mysql> ALTER USER
-> 'test1' IDENTIFIED WITH mysql_native_password,
-> 'test2'@' localhost' IDENTIFIED BY '222222'
-> WITH max_ _user_ connections 2;
Query 0K,0 rows affected (0.00 sec)

4.洗掉用戶

在MySQL中經常會創建多個普通用戶管理資料庫,但如果發現某些用戶是沒有必要的,就可以將其洗掉,通常洗掉用戶的方式采用MySQL提供的專門SQL陳述句

DROP USER [IF EXISTS]賬戶名[,賬戶名]

例:

mysql> DROP USER IE EXISTS test7;
Query 0K,0 rows affected, 1 warning (0.01 sec) .
#在洗掉賬戶時,如果省略主機地址,則默認為%’,

當DROP USER陳述句洗掉當前正在打開的用戶時,則該用戶的會話不會被自動關閉,只有在該用戶會話關閉后,洗掉操作才會生效,再次登錄將會失敗,另外,利用已洗掉的用戶登錄服務器創建的資料庫或物件不會因此洗掉操作而失效,

3.權限管理

資料表描述
user保存用戶被授予的全域權限
db保存用戶被授子的資料庫權限
tables_ priv保存用戶被授子的表權限
columns_priv保存用戶被授子的列權限
procs_priv保存用戶被授予的存盤程序權限
proxies_priv保存用戶被授予的代理權限

1.授予權限

根據權限的操作內容可將權限大致分為資料權限、結構權限以及管理權限,

權限權限級別描述
SELECT全域、資料庫、表、列SELECT
UPDATE全域、資料庫、表、列UPDATE
DELETE全域、資料庫、表DELETE
INSERT全域、資料庫、表、列INSERT
SHOW DATABASES全域SHOW DATABASES
SHOW VIEW全域、資料庫、表SHOW CREATE VIEW
PROCESS全域SHOW PROCESSLIST
DROP全域、資料庫、表允許洗掉資料庫、表和視圖
CREATE全域、資料庫、表創建資料庫、表
CREATE ROUTINE全域、資料庫創建存盤程序
CREATE TABLESPACE全域允許創建、修改或洗掉表空間和日志檔案組
CREATE TEMPORARY TABLES全域、資料庫CREATE TEMPORARY TABLE
CREATE VIEW全域、資料庫、表允許創建或修改視圖
ALTER全域、資料庫、表ALTER TABLE
ALTER ROUTINE全域、資料庫、存盤程序允許洗掉或修改存盤程序
INDEX全域、資料庫、表允許創建或洗掉索引
TRIGGER全域、資料庫、表允許觸發器的所有操作
REFERENCES全域、資料庫、表、列允許創建外鍵
SUPER全域允許使用其他管理操作,如CHANGE MASTER TO等
CREATE USER全域DROP USER、CREATE USER、RENAME USER和REVOKEALL、PRIVILEGES等
GRANT OPTION全域、資料庫、表、存盤程序、代理允許授予或洗掉用戶權限
RELOAD全域FLUSH操作
PROXY與代理的用戶權限相同
REPLICATION CLIENT全域允許用戶訪問主服務器或從服務器
REPLICATION SLAVE全域允許復制從服務器讀取的主服務器二進制日志事件
SHUTDOWN全域允許使用mysqladmin shutdown
LOCK TABLES全域、資料庫允許在有SELECT表權限上使用LOCK TABLES

權限級別指的就是權限可以被應用在哪些資料庫的內容中,

例如,SELECT權限可以被授予到全域(任意資料庫下的任意內容)、資料庫(指定資料庫下的任意內容)、表(指定資料庫下的指定資料表)、列(指定資料庫.下的指定資料表中的指定欄位),

GRANT 權限型別[欄位串列][,權限型別[欄位串列] ...
ON [目標型別]權限級別
TO 賬戶名[用戶身份驗證選項] [,賬戶名[用戶身份驗證選項]
...
[REQUIRE 連接方式]
[WITH {GRANT OPTION |資源控制選項}]
  • 權限型別:指的就是SELECT、DROP、CREATE等權限,
  • 欄位串列:用于設定列權限,
  • 目標型別:默認為TABLE,表示將全域、資料庫、表或列中的某些權限授予給指定的用戶,其他值為FUNCTION (函式)或PROCEDURE (存盤程序),
  • 權限級別:用于定義全域權限、資料庫權限和表權限,
  • 添加GRANT OPTION: 表示當前賬戶可以為其他賬戶進行授權,
  • 其余各引數均與CREATE USER中的用戶選項相同,這里不再贅述,

例:查看root用戶和test1用戶的授權情況

mysql>SHOW GRANTS FOR root'' localhost' ;

在這里插入圖片描述

mysql> SHOW GRANTS FOR 'test1' @ '%' ;

在這里插入圖片描述

  • ALL_PRIVILEGES表示除GRANT OPTION (授權權限)和PROXY (代理權限)外的所有權限,
  • USAGE表示沒有任何權限,
  • ON后的*.*表示全域級別的權限,即MySQL 服務器下的所有資料庫下的所有表,“@"表示任何主機中的匿名用戶,

例:授予test1戶shop.sh_ goods表的SELECT權限,以及對name和price欄位的插入權限

mysql> GRANT SELECT, INSERT (name, price)
-> ON shop.sh goods
-> TO 'test1 '@'號';
Query 0K,0 rows affected (0.00 sec)

查看權限的保存情況

mysql> SELECT db, table name, table priv, column_priv
-> FROM mysq1.tables priv WHERE user = 'test1' ;

在這里插入圖片描述

mysql> SELECT db, table name , column name , column_priv
-> FROM mysql.columns_ priv WHERE user= ' test1' ;

在這里插入圖片描述

2.回收權限

在MySQL中,為了保證資料庫的安全性,需要將用戶不必要的權限回收,
例如,資料管理員發現某個用戶不應該具有DELETE權限,就應該及時將其識訓,.

#①回收指定用戶的指定權限
REVOKE權限型別[(欄位串列)] [,權限型別[(欄位串列)]]
ON [目標型別]權限級別FROM賬戶名[,賬戶名] ....
#②回收所有權限以及可為其他用戶授權的權限
REVOKE ALL [PRIVIL EGES], GRANT OPTION FROM賬戶名[,賬戶名]
#③回收用戶的代理權限
REVOKE PROXY ON賬戶名FROM賬戶名1[,賬戶名2] ...

回收test1用戶的插入權限

mysq1> REVOKE INSERT (name, price)
-> ON shop.sh_ _goods FROM ' test1' @ '%' ;
Query OK, 0 rows affected (0.00 sec)

test1用戶登錄MySQL服務器,并插入資料

mysql> INSERT INTO shop.sh_ goods (name, price) VALUES('test', 23);
ERROR 1142 (42000):INSERT command denied to user ' test1'@ 'localhost' for table 'sh_goods'

3.重繪權限

重繪權限:指的是從系統資料庫mysq|中的權限表中重新加載用戶的權限,
原因在于: GRANT、CREATE USER等操作會將服務器的快取資訊保存到記憶體中,而REVOKE、DROP USER操作并不會同步到記憶體中,因此可能會造成服務器記憶體的消耗,所以在REVOKE、DROP USER后推薦讀者使用MySQL提供的“FLUSH PRIVILEGES"重新加載用戶的權限,

#方式1
FLUSH PRIVIL.EGES;
#方式2
mysqladmin -uroot -p reload
#方式3
mysqladmin -uroot -p flush-privileges

轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/137042.html

標籤:其他

上一篇:微盟程式員刪庫跑路,被判刑六年!

下一篇:智能優化演算法:麻雀搜索演算法-附代碼

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【從零開始擼一個App】Dagger2

    Dagger2是一個IOC框架,一般用于Android平臺,第一次接觸的朋友,一定會被搞得暈頭轉向。它延續了Java平臺Spring框架代碼碎片化,注解滿天飛的傳統。嘗試將各處代碼片段串聯起來,理清思緒,真不是件容易的事。更不用說還有各版本細微的差別。 與Spring不同的是,Spring是通過反射 ......

    uj5u.com 2020-09-10 06:57:59 more
  • Flutter Weekly Issue 66

    新聞 Flutter 季度調研結果分享 教程 Flutter+FaaS一體化任務編排的思考與設計 詳解Dart中如何通過注解生成代碼 GitHub 用對了嗎?Flutter 團隊分享如何管理大型開源專案 插件 flutter-bubble-tab-indicator A Flutter librar ......

    uj5u.com 2020-09-10 06:58:52 more
  • Proguard 常用規則

    介紹 Proguard 入口,如何查看輸出,如何使用 keep 設定入口以及使用實體,如何配置壓縮,混淆,校驗等規則。

    ......

    uj5u.com 2020-09-10 06:59:00 more
  • Android 開發技術周報 Issue#292

    新聞 Android即將獲得類AirDrop功能:可向附近設備快速分享檔案 谷歌為安卓檔案管理應用引入可安全隱藏資料的Safe Folder功能 Android TV新主界面將顯示電影、電視節目和應用推薦內容 泄露的Android檔案暗示了傳說中的谷歌Pixel 5a與折疊屏新機 谷歌發布Andro ......

    uj5u.com 2020-09-10 07:00:37 more
  • AutoFitTextureView Error inflating class

    報錯: Binary XML file line #0: Binary XML file line #0: Error inflating class xxx.AutoFitTextureView 解決: <com.example.testy2.AutoFitTextureView android: ......

    uj5u.com 2020-09-10 07:00:41 more
  • 根據Uri,Cursor沒有獲取到對應的屬性

    Android: 背景:呼叫攝像頭,拍攝視頻,指定保存的地址,但是回傳的Cursor檔案,只有名稱和大小的屬性,沒有其他諸如時長,連ID屬性都沒有 使用 cursor.getInt(cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DURATIO ......

    uj5u.com 2020-09-10 07:00:44 more
  • Android連載29-持久化技術

    一、持久化技術 我們平時所使用的APP產生的資料,在記憶體中都是瞬時的,會隨著斷電、關機等丟失資料,因此android系統采用了持久化技術,用于存盤這些“瞬時”資料 持久化技術包括:檔案存盤、SharedPreference存盤以及資料庫存盤,還有更復雜的SD卡記憶體儲。 二、檔案存盤 最基本存盤方式, ......

    uj5u.com 2020-09-10 07:00:47 more
  • Android Camera2Video整合到自己專案里

    背景: Android專案里呼叫攝像頭拍攝視頻,原本使用的 MediaStore.ACTION_VIDEO_CAPTURE, 后來因專案需要,改成了camera2 1.Camera2Video 官方demo有點問題,下載后,不能直接整合到專案 問題1.多次拍攝視頻崩潰 問題2.雙擊record按鈕, ......

    uj5u.com 2020-09-10 07:00:50 more
  • Android 開發技術周報 Issue#293

    新聞 谷歌為Android TV開發者提供多種新功能 Android 11將自動填表功能整合到鍵盤輸入建議中 谷歌宣布Android Auto即將支持更多的導航和數字停車應用 谷歌Pixel 5只有XL版本 搭載驍龍765G且將比Pixel 4更便宜 [圖]Wear OS將迎來重磅更新:應用啟動時間 ......

    uj5u.com 2020-09-10 07:01:38 more
  • 海豚星空掃碼投屏 Android 接收端 SDK 集成 六步驟

    掃碼投屏,開放網路,獨占設備,不需要額外下載軟體,微信掃碼,發現設備。支持標準DLNA協議,支持倍速播放。視頻,音頻,圖片投屏。好點意思。還支持自定義基于 DLNA 擴展的操作動作。好像要收費,沒體驗。 這里簡單記錄一下集成程序。 一 跟目錄的build.gradle添加私有mevan倉庫 mave ......

    uj5u.com 2020-09-10 07:01:43 more
最新发布
  • 歡迎頁輪播影片

    如圖,引導開始,球從上落下,同時淡入文字,然后文字開始輪播,最后一頁時停止,點擊進入首頁。 在來看看效果圖。 重力球先不講,主要歡迎輪播簡單實作 首先新建一個類 TextTranslationXGuideView,用于影片展示 文本是類似的,最后會有個圖片箭頭影片,布局很簡單,就是一個 TextVi ......

    uj5u.com 2023-04-20 08:40:31 more
  • 【FAQ】關于華為推送服務因營銷訊息頻次管控導致服務通訊類訊息

    一. 問題描述 使用華為推送服務下發IM訊息時,下發訊息請求成功且code碼為80000000,但是手機總是收不到訊息; 在華為推送自助分析(Beta)平臺查看發現,訊息發送觸發了頻控。 二. 問題原因及背景 2023年1月05日起,華為推送服務對咨詢營銷類訊息做了單個設備每日推送數量上限管理,具體 ......

    uj5u.com 2023-04-20 08:40:11 more
  • 歡迎頁輪播影片

    如圖,引導開始,球從上落下,同時淡入文字,然后文字開始輪播,最后一頁時停止,點擊進入首頁。 在來看看效果圖。 重力球先不講,主要歡迎輪播簡單實作 首先新建一個類 TextTranslationXGuideView,用于影片展示 文本是類似的,最后會有個圖片箭頭影片,布局很簡單,就是一個 TextVi ......

    uj5u.com 2023-04-20 08:39:36 more
  • 【FAQ】關于華為推送服務因營銷訊息頻次管控導致服務通訊類訊息

    一. 問題描述 使用華為推送服務下發IM訊息時,下發訊息請求成功且code碼為80000000,但是手機總是收不到訊息; 在華為推送自助分析(Beta)平臺查看發現,訊息發送觸發了頻控。 二. 問題原因及背景 2023年1月05日起,華為推送服務對咨詢營銷類訊息做了單個設備每日推送數量上限管理,具體 ......

    uj5u.com 2023-04-20 08:39:13 more
  • iOS從UI記憶體地址到讀取成員變數(oc/swift)

    開發除錯時,我們發現bug時常首先是從UI顯示發現例外,下一步才會去定位UI相關連的資料的。XCode有給我們提供一系列debug工具,但是很多人可能還沒有形成一套穩定的除錯流程,因此本文嘗試解決這個問題,順便提出一個暴論:UI顯示例外問題只需要兩個步驟就能完成定位作業的80%: 定位例外 UI 組 ......

    uj5u.com 2023-04-19 09:16:23 more
  • FIDE重磅更新!性能飛躍!體驗有禮!

    FIDE 開發者工具重構升級啦!實作500%性能提升,誠邀體驗! 一直以來不少開發者朋友在社區反饋,在使用 FIDE 工具的程序中,時常會遇到諸如加載不及時、代碼預覽/渲染性能不如意的情況,十分影響開發體驗。 作為技術團隊,我們深知一件趁手的開發工具對開發者的重要性,因此,在2023年開年,FinC ......

    uj5u.com 2023-04-19 09:16:15 more
  • 游戲內嵌社區服務開放,助力開發者提升玩家互動與留存

    華為 HMS Core 游戲內嵌社區服務提供快速訪問華為游戲中心論壇能力,支持玩家直接在游戲內瀏覽帖子和交流互動,助力開發者擴展內容生產和觸達的場景。 一、為什么要游戲內嵌社區? 二、游戲內嵌社區的典型使用場景 1、游戲內打開論壇 您可以在游戲內繪制論壇入口,為玩家提供沉浸式發帖、瀏覽、點贊、回帖、 ......

    uj5u.com 2023-04-19 09:15:46 more
  • iOS從UI記憶體地址到讀取成員變數(oc/swift)

    開發除錯時,我們發現bug時常首先是從UI顯示發現例外,下一步才會去定位UI相關連的資料的。XCode有給我們提供一系列debug工具,但是很多人可能還沒有形成一套穩定的除錯流程,因此本文嘗試解決這個問題,順便提出一個暴論:UI顯示例外問題只需要兩個步驟就能完成定位作業的80%: 定位例外 UI 組 ......

    uj5u.com 2023-04-19 09:14:53 more
  • FIDE重磅更新!性能飛躍!體驗有禮!

    FIDE 開發者工具重構升級啦!實作500%性能提升,誠邀體驗! 一直以來不少開發者朋友在社區反饋,在使用 FIDE 工具的程序中,時常會遇到諸如加載不及時、代碼預覽/渲染性能不如意的情況,十分影響開發體驗。 作為技術團隊,我們深知一件趁手的開發工具對開發者的重要性,因此,在2023年開年,FinC ......

    uj5u.com 2023-04-19 09:14:08 more
  • 游戲內嵌社區服務開放,助力開發者提升玩家互動與留存

    華為 HMS Core 游戲內嵌社區服務提供快速訪問華為游戲中心論壇能力,支持玩家直接在游戲內瀏覽帖子和交流互動,助力開發者擴展內容生產和觸達的場景。 一、為什么要游戲內嵌社區? 二、游戲內嵌社區的典型使用場景 1、游戲內打開論壇 您可以在游戲內繪制論壇入口,為玩家提供沉浸式發帖、瀏覽、點贊、回帖、 ......

    uj5u.com 2023-04-19 09:08:34 more