淺析SQL Server授予了CREATE TABLE權(quán)限但是無(wú)法創(chuàng)建表
在SQL Server中,如果我想授予一個(gè)用戶klb擁有創(chuàng)建表的權(quán)限,但是我又不想授予其數(shù)據(jù)庫(kù)角色db_ddladmin,因?yàn)檫@樣會(huì)擴(kuò)大其權(quán)限,那么授予下面權(quán)限可行嗎?如下所示:
USE AdventureWorks2014; GO GRANT CREATE TABLE TO klb;
那么這樣授權(quán)是否就OK呢?答案是這樣授權(quán)會(huì)報(bào)錯(cuò)“The specified schema name "dbo" either does not exist or you do not have permission to use it.”
需要授予下面權(quán)限,登錄名klb才能真正的創(chuàng)建表。
USE AdventureWorks2014; GO GRANT ALTER ON SCHEMA::dbo TO klb
但是這樣又會(huì)擴(kuò)大登錄名klb的權(quán)限(繞了一圈,又重回老路)。其實(shí),SQL Server中如果新建一個(gè)用戶模式(user-schema)的話,那么就可以解決這個(gè)問題。
CREATE SCHEMA test AUTHORIZATION klb
如果已經(jīng)存在對(duì)應(yīng)的用戶模式
USE AdventureWorks2014; GO GRANT ALTER ON SCHEMA::test TO klb
按上面這樣授權(quán)后,那么對(duì)比下面腳本,你就會(huì)發(fā)現(xiàn)klb可以在test這個(gè)模式下創(chuàng)建表,但是不能在dbo這個(gè)模式下創(chuàng)建表。其實(shí)這個(gè)也是SQL Server 用戶模式分離設(shè)計(jì)的原因。
CREATE TABLE dbo.TEST (id INT); --報(bào)錯(cuò) GO CREATE TABLE test.TEST (id INT);--正常 GO
到此這篇關(guān)于淺析SQL Server授予了CREATE TABLE權(quán)限但是無(wú)法創(chuàng)建表的文章就介紹到這了,更多相關(guān)SQL Server無(wú)法創(chuàng)建表內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- SQLServer只賦予創(chuàng)建表權(quán)限的全過程
- 一文教會(huì)你在sqlserver中創(chuàng)建表
- sql server 2000中禁止創(chuàng)建表(權(quán)限設(shè)置方法)
- SQL Server 2008 阻止保存要求重新創(chuàng)建表的更改問題的設(shè)置方法
- SqlServer使用 case when 解決多條件模糊查詢問題
- SqlServer 巧妙解決多條件組合查詢
- sqlserver和oracle中對(duì)datetime進(jìn)行條件查詢的一點(diǎn)區(qū)別小結(jié)
- SQL?Server數(shù)據(jù)庫(kù)創(chuàng)建表及其約束條件的操作方法
相關(guān)文章
SQL去除字符串空格的ltrim()和rtrim()函數(shù)的實(shí)現(xiàn)
SQL并不提供trim()函數(shù)去除字符串兩邊空格,只提供了去除字符串左邊空格ltrim()函數(shù)和去除右邊字符串空格rtrim()函數(shù),但是只要將這兩個(gè)函數(shù)配合使用,就能達(dá)到去除字符串兩端空格的效果,本文就來(lái)介紹一下這兩個(gè)函數(shù)的用法2023-11-11Sql Server數(shù)據(jù)庫(kù)常用Transact-SQL腳本(推薦)
Transact-SQL(又稱 T-SQL),是在 Microsoft SQL Server 和 Sybase SQL Server 上的 ANSI SQL 實(shí)現(xiàn),這篇文章主要介紹了Sql Server數(shù)據(jù)庫(kù)常用Transact-SQL腳本,需要的朋友可以參考下2019-12-12SQL高級(jí)應(yīng)用之使用SQL查詢Excel表格數(shù)據(jù)的方法
本文和大家講下如何在SQL Server分析器中查詢Excel電子表格的數(shù)據(jù),其實(shí)很簡(jiǎn)單的,來(lái)看下下面的SQL語(yǔ)句吧。2010-03-03SQL?Server表空間碎片化回收的實(shí)現(xiàn)
本文主要介紹了SQL?Server表空間碎片化回收的實(shí)現(xiàn),文中根據(jù)實(shí)例編碼詳細(xì)介紹的十分詳盡,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03SQL語(yǔ)句實(shí)現(xiàn)SQL Server 2000及Sql Server 2005日志收縮(批量)
SQL語(yǔ)句實(shí)現(xiàn)SQL Server 2000及Sql Server 2005日志收縮(批量)2008-08-08錯(cuò)誤22022 SQLServerAgent當(dāng)前未運(yùn)行的解決方法
啟動(dòng)SQL作業(yè)的時(shí)候,提示“錯(cuò)誤22022:SQLServerAgent當(dāng)前未運(yùn)行,因此,無(wú)法就本操作對(duì)其進(jìn)行提示。2010-07-07SQL Server免費(fèi)版的安裝以及使用SQL Server Management Studio(SSMS)連接數(shù)據(jù)庫(kù)的
這篇文章主要介紹了SQL Server免費(fèi)版的安裝以及使用SQL Server Management Studio(SSMS)連接數(shù)據(jù)庫(kù)的圖文方法,需要的朋友可以參考下2020-02-02