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