亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

SQLServer只賦予創(chuàng)建表權(quán)限的全過程

 更新時(shí)間:2022年04月12日 16:35:45   作者:OwenZeng_DBA  
在SQL Server中進(jìn)行各種操作是非常常見的操作,下面這篇文章主要給大家介紹了關(guān)于SQLServer只賦予創(chuàng)建表權(quán)限的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下

背景

今天客戶問到一個(gè)問題。 我想新建一個(gè)賬號(hào)給外部人員使用,但是我只想給他創(chuàng)建表的權(quán)限,這應(yīng)該如何操作。開始可能認(rèn)為這個(gè)問題很簡單。

我新建一個(gè)登錄賬號(hào)A

USE [master]
GO
CREATE LOGIN [A] WITH PASSWORD=N'123456', DEFAULT_DATABASE=[master], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
GO

創(chuàng)建數(shù)據(jù)庫級(jí)別的用戶A

USE [security_test]
GO
CREATE USER [a] FOR LOGIN [a] WITH DEFAULT_SCHEMA=[dbo]
GO

賦予創(chuàng)建表的權(quán)限

GRANT CREATE TABLE TO A;

然后給他賦予創(chuàng)建表的權(quán)限

現(xiàn)在試試建表

CREATE TABLE test (id int)

提示如下信息:

這是什么情況?

解決辦法1

創(chuàng)建表,每個(gè)表都是需要一個(gè)所有者,就是架構(gòu)名。 對(duì)于我們的創(chuàng)建表語句  CREATE TABLE test (id int)  它其實(shí)默認(rèn)使用的是 dbo架構(gòu)。

A用戶有了創(chuàng)建表的權(quán)限,還需要有dbo 架構(gòu)的修改權(quán)限。 于是我們需要:

GRANT ALTER ON SCHEMA::dbo TO A;
GO 

但此時(shí)我們會(huì)遇到另外一個(gè)問題,就是加上這個(gè)權(quán)限之后,A用戶除了create table 之外還能做drop table ,alter table等操作。

所以我們需要?jiǎng)?chuàng)建一個(gè)DDL 觸發(fā)器 ,來阻止其他的操作

CREATE TRIGGER db_trigger_BlockNonTableDDL
ON DATABASE 
FOR DDL_DATABASE_LEVEL_EVENTS
AS 
BEGIN 
   IF IS_MEMBER('A') = 1
   BEGIN 
 
      DECLARE @TriggerEventText nvarchar(max);
      SET @TriggerEventText = EVENTDATA().value('(/EVENT_INSTANCE/TSQLCommand/CommandText)[1]','nvarchar(max)') 
      IF NOT ((@TriggerEventText LIKE 'CREATE TABLE%'))
      BEGIN
         RAISERROR (@TriggerEventText, 16, 1)
         ROLLBACK TRANSACTION; 
      END
   END; 
END; 
GO

解決辦法2

如果,創(chuàng)建的表不需要使用默認(rèn)的dbo架構(gòu) 

那么可以給 給外部人員單獨(dú)創(chuàng)建一個(gè)shchema 。給新建一個(gè)架構(gòu)schema ,

create schema schema1 authorization dbo
go

然后

grant create table to A
grant alter, insert on schema::schema1 to A

此時(shí),A仍然可以創(chuàng)建表,和刪除表,但是他直接創(chuàng)建和刪除屬于它的架構(gòu)的表。這也起到了限定權(quán)限的問題。

總結(jié)

到此這篇關(guān)于SQLServer只賦予創(chuàng)建表權(quán)限的文章就介紹到這了,更多相關(guān)SQLServer賦予創(chuàng)建表權(quán)限內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SQL Server降權(quán)運(yùn)行 SQL Server 2000以GUESTS權(quán)限運(yùn)行設(shè)置方法

    SQL Server降權(quán)運(yùn)行 SQL Server 2000以GUESTS權(quán)限運(yùn)行設(shè)置方法

    由于sql注入問題比較常見,很多黑客都是通過sqlserver數(shù)據(jù)庫漏洞直接獲取系統(tǒng)權(quán)限,所以sqlserver的安全設(shè)置尤為重要,簡單簡單分享下sqlserver低權(quán)限運(yùn)行方法
    2014-07-07
  • SqlServer應(yīng)用之sys.dm_os_waiting_tasks 引發(fā)的疑問(上)

    SqlServer應(yīng)用之sys.dm_os_waiting_tasks 引發(fā)的疑問(上)

    很多人在查看SQL語句等待的時(shí)候都是通過sys.dm_exec_requests查看,等待類型也是通過wait_type得出,sys.dm_os_waiting_tasks也可以看到session的等待那么有什么區(qū)別呢....,這篇文章給大家介紹SqlServer應(yīng)用之sys.dm_os_waiting_tasks 引發(fā)的疑問(上),需要的朋友參考下
    2015-12-12
  • 利用SQL語句給字段加注釋的方法

    利用SQL語句給字段加注釋的方法

    這篇文章介紹了利用SQL語句給字段加注釋的方法,有需要的朋友可以參考一下
    2013-10-10
  • SQLserver2019?Express安裝及其一些問題解決

    SQLserver2019?Express安裝及其一些問題解決

    本文主要介紹了SQL?server?2019?Express?安裝及其一些問題,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • sqlserver 手工實(shí)現(xiàn)差異備份的步驟

    sqlserver 手工實(shí)現(xiàn)差異備份的步驟

    sqlserver 手工實(shí)現(xiàn)差異備份的步驟,需要的朋友可以參考下。
    2011-04-04
  • SQLServer2019安裝教程圖文詳解

    SQLServer2019安裝教程圖文詳解

    這篇文章主要介紹了SQLServer2019安裝教程圖文詳解,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-02-02
  • SQL SERVER日志進(jìn)行收縮的圖文教程

    SQL SERVER日志進(jìn)行收縮的圖文教程

    這篇文章主要給大家介紹了關(guān)于SQL SERVER日志進(jìn)行收縮的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者使用SQL SERVER具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • 詳解SQLServer和Oracle的分頁查詢

    詳解SQLServer和Oracle的分頁查詢

    分頁功能是我們的基本功,必須要牢固掌握。通過對(duì)分頁算法的整理,希望對(duì)實(shí)現(xiàn)分頁功能更得心應(yīng)手了,需要的朋友可以參考下
    2015-09-09
  • 跨數(shù)據(jù)庫實(shí)現(xiàn)數(shù)據(jù)交流

    跨數(shù)據(jù)庫實(shí)現(xiàn)數(shù)據(jù)交流

    這篇文章主要介紹了跨數(shù)據(jù)庫實(shí)現(xiàn)數(shù)據(jù)交流的兩種方式,一是通過鏈接服務(wù)器,二是使用OPENDATASOURCE/OPENROWSET連接遠(yuǎn)程服務(wù)器,需要的朋友可以參考下
    2015-08-08
  • SQLSERVER簡單創(chuàng)建DBLINK操作遠(yuǎn)程服務(wù)器數(shù)據(jù)庫的方法

    SQLSERVER簡單創(chuàng)建DBLINK操作遠(yuǎn)程服務(wù)器數(shù)據(jù)庫的方法

    這篇文章主要介紹了SQLSERVER簡單創(chuàng)建DBLINK操作遠(yuǎn)程服務(wù)器數(shù)據(jù)庫的方法,涉及SQLSERVER數(shù)據(jù)庫的簡單設(shè)置技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2016-06-06

最新評(píng)論