2016年11月8日 星期二

檔案系統(File System)

Windows:
FAT16 :支持最大分區2GB,最大文件2GB
FAT32 (File Allocation Table): 支持最大分區2TB,最大文件4GB
NTFS (New Technology File System) :支持最大分區2TB,最大文件2TB
exFAT(Extended FAT) : 對於單檔超過4 GB的跨系統(windows,mac,linux)使用者來說,可用exFAT
 
Linux: 
history: 1991minix,1992ext,1993ext2,2001ext3,2008ext4,2010btrfs
ext4:  使用了B+樹索引數據extent的文件系統(有別於EXT2/EXT3),支持最大分區1EB,最大文件16TB
btrfs: Linux檔案系統。支援快照(File System Snapshots),將檔案系統照相。現代人常用的危機處理方法。

Mac OS X的檔案系統是HFS+。

XFS 是非常穩固,並擁有高度擴充性的單主機 64 位元日誌檔案系統。可以支持9E(2的63次方)的分區。

磁碟空間的浪費
FAT32:隨著大容量硬盤的出現,從Windows 98開始,FAT32開始流行。它是FAT16的增強版本,可以支持大到2TB(2048G)的分區。 FAT32使用的簇比FAT16小,從而有效地節約了硬盤空間。
NTFS:微軟Windows NT內核的系列操作系統支持的、一個特別為網絡和磁盤配額、文件加密等管理安全特性設計的磁盤格式。隨著以NT為內核的Windows 2000/ XP的普及,很多個人用戶開始用到了NTFS。 NTFS也是以簇為單位來存儲數據文件,但NTFS中簇的大小並不依賴於磁盤或分區的大小。簇尺寸的縮小不但降低了磁盤空間的浪費,還減少了產生磁盤碎片的可能。 NTFS支持文件加密管理功能,可為用戶提供更高層次的安全保證。

為什麼要分區?
擁有不同分區的一個主要目的就是為了在災難發生時能獲得更好的數據安全性。

日誌檔案系統(Journaling file system) 
一種檔案系統,指在檔案系統發生變化時,先把相關的資訊寫入一個被稱為記錄檔的區域,然後再把變化寫入主檔案系統的檔案系統。在檔案系統發生故障(如內核崩潰或突然停電)時,記錄檔檔案系統更容易保持一致性,並且可以較快取消復原。

常見的日誌檔案系統
JFS:IBM的 Journaled File System, 最早的記錄檔檔案系統
Ext4/Ext3檔案系統:Ext2檔案系統演化而成的記錄檔檔案系統,廣泛用於Linux系統
ReiserFS:用B+樹作為資料結構的記錄檔檔案系統,在處理小檔案時有較好的效能
Btrfs:用B樹作為資料結構,被認為是下一代Linux檔案系統
NTFS:微軟的NTFS也是記錄檔檔案系統,也是Windows NT下最常用的檔案系統
HFS+:蘋果公司發展的OS X作業系統下主要使用的檔案系統

快照(File System Snapshots)
將檔案系統照相。現代人常用的危機處理方法。

磁簇(叢集cluster)
放data的地方,放data的方法有點類似會場帶位置,人進進出出,如何分配,一家人沒坐在一起,如何記錄。

2016年11月7日 星期一

‍資料庫的使用者與權限

檢視使用者
select user,host from mysql.user;

新增使用者
create user 'username'@'host' identified by 'password';
#host can be: localhost, 192.168.1.%, %

修改使用者密碼:
set password for 'user'@'host' = password('password');

 刪除使用者
1. drop user 'username'@'host';
2. delete from mysql.user where user='user' and host='host';

檢視grant權限
show grants for 'username'@'host';

grant權限
概念:
1. 使用指令的權限,使用者對所有資料庫使用指令的權限。
grant select on *.* to 'user'@'host';
資料指令權限有select,insert,update,delete,file
結構指令權限create,alter,index,drop,create temporary tables,show view,create routine,alter routine,excute,create view,event,trigger
系統管理指令權限 grant,super,process,reload,shut down,show database,lock tables,create user
2. 對資料庫的權限,可以專為單一資料庫開放所有權限,但其他資料庫只有select的權限。
ex, grant privileges on *.* to 'username'@'host';
(privileges: all privileges, select,insert,update.........)
(*.* : database.*)
ex, grant all privileges on database.* to 'user'@'host';

給與grant權限 
grant privileges on *.* to 'username'@'host' with grant option; 

取消權限
revoke all privileges on *.* from 'username'@'host';
revoke grant option on *.* from 'username'@'host';