sql怎樣建立表許可權,怎麼設定SQL資料庫使用者許可權

2022-01-28 17:51:12 字數 5494 閱讀 7207

1樓:day忘不掉的痛

--建立兩個測試表

create table tb1(id int,value int)

insert tb1 values(1,10)

create table tb2(id int,value int)

insert tb1 values(1,10)

go--建立登入

create login liang with password='[email protected]';

--建立使用者

create user liang from login liang;

--授予使用者對tb1有update某個列的許可權,tb2只有select許可權

grant update(value) on tb1 to liang

grant select on tb1 to liang

grant select on tb2 to liang

go--模擬使用者liang對tb1表進行update

execute as user='liang'

update tb1 set

value=20

where id=1

revert

select * from tb1

/*id value

----------- -----------

1 20

(1 行受影響)

*/--模擬使用者liang對tb2表進行update

execute as user='liang'

update tb2 set

value=20

where id=1

revert

/*訊息 229,級別 14,狀態 5,第 23 行

拒絕了對物件 'tb2' (資料庫 'tempdb',架構 'dbo')的 update 許可權。

*/go

--刪除測試

drop table tb1,tb2

drop user liang

drop login liang

--要控制對資料庫的許可權, 可以參考下面的:

-- 防止訪問他不該訪問的資料庫(總控制,明細還可以控制他對於某個資料庫的具體物件具有的許可權)

--切換到你新增的使用者要控制的資料庫

use 你的庫名

go--新增使用者

exec sp_addlogin 'test' --新增登入

exec sp_grantdbaccess n'test' --使其成為當前資料庫的合法使用者

exec sp_addrolemember n'db_owner', n'test' --授予對自己資料庫的所有許可權

--這樣建立的使用者就只能訪問自己的資料庫,及資料庫中包含了guest使用者的公共表

go--刪除測試使用者

exec sp_revokedbaccess n'test' --移除對資料庫的訪問許可權

exec sp_droplogin n'test' --刪除登入

如果在企業管理器中建立的話,就用:

企業管理器--安全性--右鍵登入--新建登入

常規項--名稱中輸入使用者名稱

--身份驗證方式根據你的需要選擇(如果是使用windows身份驗證,則要先在作業系統的使用者中新建使用者)

--預設設定中,選擇你新建的使用者要訪問的資料庫名

伺服器角色項

這個裡面不要選擇任何東西

資料庫訪問項

勾選你建立的使用者需要訪問的資料庫名

資料庫角色中允許,勾選"public","db_ownew"

確定,這樣建好的使用者與上面語句建立的使用者一樣

最後一步,為具體的使用者設定具體的訪問許可權,這個可以參考下面的最簡示例:

--新增只允許訪問指定表的使用者:

exec sp_addlogin '使用者名稱','密碼','預設資料庫名'

--新增到資料庫

exec sp_grantdbaccess '使用者名稱'

--分配整表許可權

grant select , insert , update , delete on table1 to [使用者名稱]

--分配許可權到具體的列

grant select , update on table1(id,aa) to [使用者名稱]

2樓:墮落魔御

你說的是不是這個?

如何設定sql server 的建立表的許可權呢?

如果是的話

就是這邊設定就可以了

開啟sql server 2000(比如)開啟「安全性」 - 「新建登入」- 有個「伺服器角色」選項 - 你只要選擇「database creators」 就是建立表許可權了

怎麼設定sql資料庫使用者許可權

3樓:匿名使用者

-- sqlserver:

一、操作步驟

首先進入資料庫級別的【安全性】-【登入名】-【新建登入名】

(圖1:新建登入名)

2. 在【常規】選項卡中,如下圖所示,建立登陸名,並設定預設的資料庫。

(圖2:設定選項)

3. 在【使用者對映】選項卡中,如下圖所示,勾選需要設定的資料庫,並設定【架構】,點選【確認】按鈕,完成建立使用者的操作

(圖3:選擇對應資料庫)

4. 現在我們就可以對testlog資料庫中的user表進行許可權的設定了,【表】-【 屬性】

(圖4:選擇對應表)

5. 在【許可權】選項卡中,如下圖所示,依此點選【新增】-【瀏覽】-【選擇物件】

(圖5:設定訪問表的使用者)

6. 在上面點選【確認】後,我們就可以下面的列表中找到對應的許可權,如果你還想細化到列的許可權的話,右下角還有乙個【列許可權】的按鈕可以進行設定,點選【確認】按鈕就完成了這些許可權的設定了

(圖6:許可權列表)

7. 現在就使用testuser使用者登陸資料庫了,登陸後如下圖所示,現在只能看到乙個表了

(圖7:效果)

二、注意事項

在上面的第3步驟中需要注意:如果這裡沒有選擇對應的資料庫的話,之後去testlog資料庫中是找不到testuser。

(圖8:找不到testuser使用者)

2. 在上面的第3步驟,設定完testlog資料後,需要點選【確認】按鈕,完成建立使用者操作,如果這個時候去設定【安全物件】,是無法在【新增】-【特定物件】-【物件型別】-【登陸名】-【瀏覽】中找到剛剛新建的testuser使用者的。

3. 其實在資料庫級別的【安全性】建立的使用者是屬於全域性的,當設定了某個資料庫,比如testlog之後,這個使用者就會出現在這個資料庫的【安全性】列表中。 如果刪除testlog這個使用者,會出現下面的提示。

刪除了後,這個使用者就無法登陸了。需要去對應的資料庫中刪除使用者,如果沒有刪除又建立,是會報錯的。

(圖9:刪除testuser使用者)

4. 在第6步的【顯式許可權】列表中,如果選擇了【control】這個選項,那麼在【select】中設定查詢【列許可權】就沒有意義了,查詢就不會受限制了。如果設定【列許可權】,在正常情況下會顯示下圖的報錯資訊:

(圖10:效果)

5. 在testlog資料庫的【安全性】-【testuser】-【屬性】-【安全物件】-【新增】-【物件型別】這裡有更多關於資料庫級別的一些物件型別可以設定。

(圖11:其它物件型別)

4樓:傳奇勇者

現在安全性裡面設定使用者角色,然後去資料庫裡面設定使用者許可權。

sql server 建好了,如何建立使用者以及賦予所有許可權?

5樓:

工具/材料:sql server management studio。

1、首先在桌面上,點選「sql server management studio」圖示。

2、然後在該介面中,點選「安全性」裡的「登入名」選項。

3、之後在該介面中,右鍵點選「新建登入名」選項。

4、接著在該介面中,輸入「登入名」、「密碼」和「確認密碼」。

5、然後在該介面中,點選左側選擇頁中「伺服器角色」選項。

6、再者在該介面中,勾選「sysadmin」選項。

7、最後在該介面中,點選「確定」按鈕。

6樓:du瓶邪

1. 首先在 sql server 伺服器級別,建立登陸帳戶(create login)

--建立登陸帳戶(create login)

create login dba with password='abcd1234@', default_database=mydb

登陸帳戶名為:「dba」,登陸密碼:abcd1234@」,預設連線到的資料庫:

「mydb」。 這時候,dba 帳戶就可以連線到 sql server 伺服器上了。但是此時還不能 訪問資料庫中的物件(嚴格的說,此時 dba 帳戶預設是 guest 資料庫使用者身份, 可以訪問 guest 能夠訪問的資料庫物件)。

要使 dba 帳戶能夠在 mydb 資料庫中訪問自己需要的物件, 需要在資料庫 mydb 中建立乙個「資料庫使用者」,賦予這個「資料庫使用者」 某些訪問許可權,並且把登陸帳戶「dba」 和這個「資料庫使用者」 對映起來。 習慣上,「資料庫使用者」 的名字和 「登陸帳戶」的名字相同,即:「dba」。

建立「資料庫使用者」和建立對映關係只需要一步即可完成:

2. 建立資料庫使用者(create user):

--為登陸賬戶建立資料庫使用者(create user),在mydb資料庫中的security中的user下可以找到新建立的dba

create user dba for login dba with default_schema=dbo

並指定資料庫使用者「dba」 的預設 schema 是「dbo」。這意味著 使用者「dba」 在執行「select * from t」,實際上執行的是 「select * from dbo.t」。

3. 通過加入資料庫角色,賦予資料庫使用者「dba」許可權:

--通過加入資料庫角色,賦予資料庫使用者「db_owner」許可權

exec sp_addrolemember 'db_owner', 'dba'

此時,dba 就可以全權管理資料庫 mydb 中的物件了。

如果想讓 sql server 登陸帳戶「dba」訪問多個資料庫,比如 mydb2。 可以讓 sa 執行下面的語句:

--讓 sql server 登陸帳戶「dba」訪問多個資料庫

use mydb2

gocreate user dba for login dba with default_schema=dbo

goexec sp_addrolemember 'db_owner', 'dba'

go此時,dba 就可以有兩個資料庫 mydb, mydb2 的管理許可權了!

sql資料庫建立table問題,我現在用sql建立資料庫表 為什麼老是提示語法錯誤

語法錯誤constraint fk 約束名 foreign key 外來鍵列 references 主表 引用表 主鍵列 on update cascade 級聯更新 可選 on delete cascade 級聯刪除 可選 sqlserver中create table 建成功後為啥找不到建好的表呢...

怎樣在資料庫中插入十六進位制,SQL資料庫中密碼16進製制怎麼轉換為字串

將十六進位製數 0x 這樣的給轉成字串比如0x1234轉成字串 0x1234這樣就相當於 0x1234 了 然後在插入資料庫就可以了 一般資料庫列中沒有十六進位制型別的資料,需要將十六進位製數先轉換為字串形式,再插入資料庫中,對應的資料庫列的資料型別為char n n為最大字元長度。sql資料庫中密...

C中怎麼讀取SQL資料庫表中的資料後顯示在TEXTBO

private void getdatabyparmsql mand catch exception ee finally string connstring 連線字串string sql 資料庫查詢語句connection con new connection connstring mand cm...