如何在KALI-LINUX上安裝Nosql-Exploitation-Framework
創(chuàng)新互聯(lián)公司主要從事成都做網(wǎng)站、網(wǎng)站制作、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務。立足成都服務麥蓋提,10余年網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務專業(yè),歡迎來電咨詢建站服務:028-86922220
然后查看文件夾”Nosql" 中的“README”, 可以用notepad打開,接下來執(zhí)行如下命令:
root@kali:~#apt-get install Python-setuptools
root@kali:~#easy_install pip
root@kali:~/Nosql# ./installformac.sh #因為該腳本僅是適合蘋果電腦,所以難免會出現(xiàn)一些問題
root@kali:~/Nosql#pip install -r requirements.txt
授權(quán)命令 grant,語法格式(SQL語句不區(qū)分大小寫):
Grant 權(quán)限 on 表名[(列名)] to 用戶 With grant option
如給user1添加查詢的權(quán)限:
grant select on student to user1 With grant option
--SQL基本命令
--數(shù)據(jù)定義語言
Create(創(chuàng)建)
Alter(更改)
Drop(刪除)
--數(shù)據(jù)操縱語言
Insert(插入)
select(選擇)
delete(刪除)
update(更新)
--事務控制語言
commit(提交)
savepoint(保存點)
rollback(回滾)
--數(shù)據(jù)控制語言
Grant(授權(quán))
Revoke(回收)
--Orcale數(shù)據(jù)類型
--字符數(shù)據(jù)類型
char這種數(shù)據(jù)類型的列長度可以是1到2000個字節(jié)。
varchar2該數(shù)據(jù)類型的大小在1-4000個字節(jié)范圍內(nèi)
long這種數(shù)據(jù)類型可存儲最大2GB。
--數(shù)值數(shù)據(jù)類型
number數(shù)據(jù)類型可以存儲正數(shù)、負數(shù)、零、定點數(shù)和精度為38位的浮點數(shù)。
--日期時間數(shù)據(jù)類型
date數(shù)據(jù)類型使用七個字節(jié)固定長度,每個字節(jié)分別存儲世紀、年、月、日、小時、分和秒。從4712年1月1日到公元9999年12月13日。
Timestamp數(shù)據(jù)類型用于存儲日期的年、月、日以及時間的小時、分和秒值。秒值是精確到小數(shù)點后6位。該數(shù)據(jù)類型還包括了時區(qū)信息。
--Raw和LongRaw數(shù)據(jù)類型
Raw數(shù)據(jù)類型
Raw數(shù)據(jù)類型用于存儲基于字節(jié)的數(shù)據(jù)。如二進制數(shù)據(jù)或字節(jié)串,該數(shù)據(jù)類型最多能存儲2000個字節(jié)。
LongRaw數(shù)據(jù)類型用于存儲可變長度的二進制數(shù)據(jù),最多能存儲2GB。(該數(shù)據(jù)不能使用索引,long受到的所有限制對longraw數(shù)據(jù)類型同樣有效)
--LOB數(shù)據(jù)類型
Clob數(shù)據(jù)類型能夠存儲大量字符數(shù)據(jù)。該數(shù)據(jù)類型可以存儲單字節(jié)數(shù)據(jù)和多字節(jié)字符數(shù)據(jù)。clob可用于存儲非結(jié)構(gòu)化的XML文檔。
Blob數(shù)據(jù)類型可以存儲較大的二進制對象,如圖形、視頻剪輯和聲音剪輯等。
Bfile數(shù)據(jù)類型能夠?qū)⒍M制文件存儲二進制文件存儲在數(shù)據(jù)庫外部的操作系統(tǒng)文件中。Bfile列存存儲一個Bfile定位器。它指向位于服務器文件系統(tǒng)上的二進制文件。支持的文件最大為4GB。
--查看指定偽列用戶(scott)
select rowid,ename,comm from emp where sal=1500
--查看偽列數(shù)
select * from emp where rownum2
--數(shù)據(jù)定義語言
create table (需要創(chuàng)建的表)
alter table (需要更改的表)
truncate table (需要截斷的表)
drop table (需要刪除的表)
--create table保命令
create table [所有者即模式的名稱,如果用戶在自己的模式中創(chuàng)建表,則可以不指定所有者名稱。][需要創(chuàng)建的表名]
([列的名稱] [數(shù)據(jù)類型及長度]);
--例子(在當前用戶下創(chuàng)建了一張名為(Cool)的表,里有有三個列分別是:Cool_ID、Cool_Name、Cool_like):
create table Cool(
Cool_ID number,
Cool_Name varchar(20),
Cool_like varchar(30));
--在表中插入數(shù)據(jù)
insert into Cool values(8850,'酷兒','編寫Java應用程序');
insert into Cool values(8851,'酷兒','編寫Java應用程序1');
insert into Cool values(8852,'酷兒','編寫Java應用程序2');
insert into Cool values(8853,'酷兒','編寫Java應用程序3');
insert into Cool values(8854,'酷兒','編寫Java應用程序4');
insert into Cool values(8856,'酷兒','編寫Java應用程序5');
insert into Cool values(8855,'酷兒','編寫Java應用程序6');
--alter table命令
alter table [需要更改的表命稱] [模式(modify=更改,add=添加,drop=刪除)] (表中的列名)
--例子
--更改表中Cool_like列數(shù)據(jù)長度更改為15
alter table cool modify (cool_name varchar(15));
--插入數(shù)據(jù)進行測試第一條數(shù)據(jù)可以順利插入到列中,而第二條數(shù)據(jù)則不能插入列數(shù),應為它的長度己超過了15個字符。(執(zhí)行結(jié)果為:Error位于第一行:ora-01401:插入數(shù)據(jù)值對于列過大);
insert into Cool values(8855,'酷兒Test','編寫Java應用程序、游戲等等。');
insert into Cool values(8855,'測試用戶名,此列長度將超過15個字符。','編寫Java應用程序、游戲等等。');
--在表中添加一個列,在表中添加一個Cool_Tel來存儲電話號碼。
alter table Cool add (Cool_Tel varchar(12));
insert into Cool values(8856,'酷兒8856','編寫Java應用程序','13529424360');
--在表中刪除Cool_Tel列;
alter table cool drop column cool_tel;
--Truncate table命令
--刪除表中的記錄而不刪除列,此方法不能回滾因為它不使用事務處理。(優(yōu)點:刪除速度快)
truncate table cool;(執(zhí)行結(jié)果:表己截斷)
--desc查看cool表的結(jié)構(gòu)
desc cool;
--drop table命令
--刪除Cool表。此方法可以使用事務回滾。
drop table cool;
--數(shù)據(jù)操縱語言
--選擇命令(Select)
select * from emp;(查詢表中所有數(shù)據(jù))
select * from emp where ename='adams';(按條件查詢表中數(shù)據(jù))
select distinct * from emp;(不選擇表中的重復行,使用distinct關(guān)鍵字);
select * from cool where cool_name='酷兒' order by cool_id asc;(按Coo_ID進行升序排序)
select * from cool where cool_name='酷兒' order by cool_id desc;(按Coo_ID進行降序排序)
create table CoolDemo as select * from cool;(用現(xiàn)有表Cool創(chuàng)建一個新表,數(shù)據(jù)包括在select語包里,可以是所有,也可以是指定的列)
create table CoolDemo2 as select * from cool where 1 = 2;(此條件不成立,所有只創(chuàng)建了表結(jié)構(gòu),沒有數(shù)據(jù))
select cool_id+10 sum ,cool_name from cool;(此條語句使用了別名sum并且是cool_id+10語后的值,但原始值不會改變。)
--插入命令(Insert)
insert into cool values(8857,'酷兒','編寫Java應用程序');(在Cool表中插入數(shù)據(jù))
insert into cool(cool_name,cool_like) values('酷兒','編寫Java應用程序null');(只插入姓名列(cool_name)和愛好列(cool_like)的值)
insert into cool values(8858,'酷兒',null);(在cool表中跳過了cool_like列,使用空值來填充)
alter table cool add(cool_date date);(在表中添加一個日期列,以便下面插入日期值)
insert into cool values(8859,'酷兒','編寫Java應用程序8859','22-11月-06');(此條語句在Cool表中cool_date列插入了2006年11月12日的日期)
insert into cool select * from cooldemo;(此條語句插入了來自期它表的數(shù)據(jù))
--更新命令(Update)
update cool set cool_name='酷兒至酷' where cool_name='酷兒';(如果cool_name列的值等于(酷兒)那么就將它更改為(酷兒至酷),這是有條件的查詢)
update cool set cool_name='酷兒';(此條語句將cool_name列的所有值更改為(酷兒))
--刪除命令(delete)
delete cool where cool_like='編寫Java應用程序null';(如果cool表中cool_like列值等于(編寫Java應用程序null)就刪除它)
--提交命令(Commit)
commit;(提交事務)
commit work;(功能同上)
--標記命令(SavePoint)
savepoint savepoint_id;(它用來標記事務中可以應用回滾的點。)
--回滾事務(RollBack)
rollback;
rollback work;
rollback to savepoint [自己標記的記錄點];
--數(shù)據(jù)控制語言
--授權(quán)命令(Grant)
Grant [操作權(quán)限如:select,update,delete等] on [表名稱] to [用戶名]
grant select,update,delete on cool to hedong911;(此條語句授權(quán)給用戶hedong911查詢、更新、刪除cool表的權(quán)力)
grant update(cool_id,cool_name) on cool to hedong911;(此條語句授權(quán)給用戶hedong911更新cool表(cool_id,cool_name)列權(quán)力)
grant select on cool to hedong911 with grant option;(此語句授權(quán)的用戶hedong911可以給其它用戶授權(quán))
--回收授權(quán)命令(revoke)
revoke select,update,delete on cool to hedong911;(此條語句回收了hedong911的查詢、更新、刪除權(quán)力)
--算術(shù)操作符
(跳過)
--比較操作符
--比較操作符包括(=、!=、、、=、=、between……and(檢查是否在兩個值之間)、in(與列表中的值相匹配)、like(匹配字符模式)和is null(檢查是否為空),最后四個操作符還可以和not(非)一起使用如:not between……and等
select * from cool where cool_name!='1';
select * from cool where cool_name like '酷兒';
select * from cool where cool_id 8853;
select * from cool where cool_id 8853;
select * from cool where cool_id = 8853;
select * from cool where cool_id = 8853;
select * from cool where cool_like in ('編寫Java應用程序');
--邏輯操作符
--邏輯操作符包括and(與)、or(或)和now(非);
select * from cool where cool_id =8856 and cool_id = 8853;
select * from cool where cool_id =9999 or cool_like in ('編寫Java應用程序');
--集合操作符
--聯(lián)合查詢(union)
select * from cool union select * from cooldemo;(此條語句將Cool和CoolDemo兩張表的查詢結(jié)果合拼,并刪除重復行)
--聯(lián)合所有查詢(union all)
select * from cool union all select * from cooldemo;(此條語句將Cool和CoolDemo兩張表的查詢結(jié)果合拼,不刪除重復行)
--交集查詢(intersect)
select * from cool intersect select * from cooldemo;(此條語句查詢兩張表都有的行)
--減集查詢(minus)
select * from cool minus select * from cooldemo;(此條語句返回第二張表沒有的數(shù)據(jù))
--連接(||)操作符
select ('用戶編號:'||cool_id||'姓名是:'||cool_name||'愛好是:'||cool_like||'日期是:'||cool_date) from cool where cool_id=8859;(運行結(jié)果:用戶編號:8859姓名是:酷兒愛好是:編寫Java應用程序8859日期是:22-11月-06)
NoSQL數(shù)據(jù)庫有很多種,實現(xiàn)方式差別很大。有接近SQL查詢方式的,也有純粹的鍵值對查詢。
對于K-V型數(shù)據(jù)庫,比較典型的是Redis,系統(tǒng)提供了get、set之類的命令用于增刪改查。關(guān)鍵是鍵值對的鍵和值怎么設(shè)計。
sql語言用grant語句向用戶授予操作權(quán)限,grant語句的一般格式為:
grant
權(quán)限[,權(quán)限]...
[on
對象類型
對象名]
to
用戶[,用戶]...
[with
grant
option];
其語義為:將對指定操作對象的指定操作權(quán)限授予指定的用戶。
不同類型的操作對象有不同的操作權(quán)限,常見的操作權(quán)限如表3-4所示。
表3-4
不同對象類型允許的操作權(quán)限
對象
對象類型
操作權(quán)限
屬性列
table
select,
insert,
update,
delete
all
privieges
視圖
table
select,
insert,
update,
delete
all
privieges
基本表
table
select,
insert,
update,
alter,
index,delete
all
privieges
數(shù)據(jù)庫
database
createtab
詳細信息…
接受權(quán)限的用戶可以是一個或多個具體用戶,也可以是public即全體用戶。
如果指定了with
grant
option子句,則獲得某種權(quán)限的用戶還可以把這種權(quán)限再授予別的用戶。如果沒有指定with
grant
option子句,則獲得某種權(quán)限的用戶只能使用該權(quán)限,但不能傳播該權(quán)限。
例1
把查詢student表權(quán)限授給用戶u1
grant
select
on
table
student
to
u1;
例2
把對student表和course表的全部權(quán)限授予用戶u2和u3
grant
all
priviliges
on
table
student,
course
to
u2,
u3;
例3
把對表sc的查詢權(quán)限授予所有用戶
grant
select
on
table
sc
to
public;
例4
把查詢student表和修改學生學號的權(quán)限授給用戶u4
詳細信息…
這里實際上要授予u4用戶的是對基本表student的select權(quán)限和對屬性列sno的update權(quán)限。授予關(guān)于屬性列的權(quán)限時必須明確指出相應屬性列名。完成本授權(quán)操作的sql語句為:
grant
update(sno),
select
on
table
student
to
u4;
例5
把對表sc的insert權(quán)限授予u5用戶,并允許他再將此權(quán)限授予其他用戶
grant
insert
on
table
sc
to
u5
with
grant
option;
詳細信息…
執(zhí)行此sql語句后,u5不僅擁有了對表sc的insert權(quán)限,還可以傳播此權(quán)限,即由u5用戶發(fā)上述grant命令給其他用戶。
例如u5可以將此權(quán)限授予u6:
grant
insert
on
table
sc
to
u6
with
grant
option;
同樣,u6還可以將此權(quán)限授予u7:
grant
insert
on
table
sc
to
u7;
因為u6未給u7傳播的權(quán)限,因此u7不能再傳播此權(quán)限。
例6
dba把在數(shù)據(jù)庫s_c中建立表的權(quán)限授予用戶u8
grant
createtab
on
database
s_c
to
u8;
用SQL語句為指定用戶授權(quán)的具體步驟如下:
我們需要準備的材料分別是:電腦、sqlserver2008
1、首先打開sqlserver2008,之后點擊打開左上角的“新建查詢”。
2、然后在彈出來的窗口中新建aa用戶,輸入:
exec sp_addlogin ?'aa', ? ?'123456', ? ?'mydb'
exec ?sp_grantdbaccess ?'aa'
EXEC sp_addrolemember 'db_datareader', 'aa',讓aa用戶獲得設(shè)置查詢mydb所有表的權(quán)限。
3、然后用aa賬號登錄到該系統(tǒng)中即可。