单选题
12. 在SQL Server 2008某数据库中,有表T(A,B)和S(A,C)。现在依次执行如下SQL命令:
①create role R1;
②create user U1;
③grant INSERT on T to R1;
④sp_addrolemember 'R1', 'U1';
⑤sp_addrolemember 'db_datareader', 'U1';
⑥deny SELECT on T to R1;
则下列说法中,正确的是______。
【正确答案】
C
【答案解析】 sp_addrolemember语句的作用是为固定数据库角色添加成员。
①create role R1语句是添加用户角色R1;
②create user U1语句是添加用户U1;
③grant INSERT on T to R1语句是授权用户R1在表上T具有insert(插入)权限;
④sp_addrolemember 'R1', 'U1'是将用户U1添加到R1角色中;⑤sp_addrolemember 'db_datareader', 'U1'是将用户U1添加到db_datareader角色中,db_datareader的角色具有查询数据库中所有用户数据的角色;
⑥deny SELECT on T to R1作用是不允许角色R1在表上T上具有查询的功能。
由步骤④、⑤和⑥知道,U1属于R1角色,而R1不能查询T1,故答案为C项。