在create table脚本中设置权限

时间:2013-07-18 23:31:52

标签: sql-server

我有一个简单的创建表脚本,如下所示:

CREATE TABLE  [dbo].[CAS_WORKED](
    [recordid] [int] IDENTITY(1,1) NOT NULL,
    [Region] [varchar](20) COLLATE Latin1_General_CI_AS NULL,
    [OpsLevel1] [varchar](20) COLLATE Latin1_General_CI_AS NULL,
    [OpsLevel2] [varchar](20) COLLATE Latin1_General_CI_AS NULL,
    [CostCentre] [varchar](4) COLLATE Latin1_General_CI_AS NULL

CONSTRAINT [PK_CAS_WORKED] PRIMARY KEY CLUSTERED 
(
    [recordid] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]

有没有办法在create table脚本中为特定数据库角色设置删除,插入,选择和更新权限?

3 个答案:

答案 0 :(得分:1)

完全可以将权限放在同一个脚本中,即使是在同一个批处理中,但在同一个语句中也是如此。 CREATE TABLE应该正常发布,然后GRANT / DENY来设置权限。例如,它可能是这样的:

CREATE TABLE dbo.test (Id INT NOT NULL PRIMARY KEY) ;
GRANT SELECT ON dbo.test TO SomeUser ;
GO

答案 1 :(得分:0)

GRANT SELECT, INSERT, UPDATE, DELETE ON CAS_WORKED
TO USERGROUP1, USERGROUP2;

答案 2 :(得分:0)

您可以创建新的数据库角色,然后通过以下方式分配权限:

例如,我有一个名为“Custom_Admin”的角色

GRANT SELECT,UPDATE,INSERT,DELETE ON CAS_WORKED TO CustomAdmin

或(更标准,你应该有fulluser)

GRANT SELECT,UPDATE,INSERT,DELETE ON CAS_WORKED to FULLUSER

希望这有帮助。