日期:2014-05-18  浏览次数:20478 次

关于权限设定
登录用户需要可以创建、修改、删除表,但对非自己创建的表,仅可查询。

不知权限如何设定,请各位帮忙看看。


------解决方案--------------------
SQL code
剛測了個例子給樓主參照,按自己情況更改

/*
創建角色
*/
USE [Test]
GO
CREATE ROLE [AppSelectRole]
GO
use [Test]
GO
GRANT SELECT TO [AppSelectRole]
GO
GRANT CREATE TABLE TO [AppSelectRole]
GO
USE [Test]
GO
CREATE SCHEMA [UserTest] AUTHORIZATION [AppSelectRole]
GO

/*
創建登陸用戶
*/
USE [master]
GO
CREATE LOGIN [TestUser] WITH PASSWORD=N'1', DEFAULT_DATABASE=[master], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
GO
USE [Test]
GO
CREATE USER [TestUser] FOR LOGIN [TestUser]
GO
USE [Test]
GO
EXEC sp_addrolemember N'AppSelectRole', N'TestUser'
GO

/*
測試
*/
USE Test
GO
EXECUTE AS LOGIN='TestUser'
GO
CREATE TABLE userTest.t2(ID int)    --OK
go
DROP TABLE userTest.t2                --OK
go
SELECT * FROM dbo.t                    --OK
go
DROP TABLE dbo.t                    --Error
/*
訊息 3701,層級 14,狀態 20,行 1
無法 卸除 資料表 'T',因為它不存在或您沒有權限。

*/
GO
REVERT

------解决方案--------------------
探讨
登录用户需要可以创建、修改、删除表,但对非自己创建的表,仅可查询。

不知权限如何设定,请各位帮忙看看。