- 论坛徽章:
- 0
|
各位老大:
为什么通过将create table权限赋予role, 而又将role给login user的模式不能创建表?
但是直接将create table权限赋予database user的模式可以创建表。
1. 初始化设备
use master
go
disk init name = "kplus_dev", physname = "C:sybasedatakplus_data01", size = "10M"
go
disk init name = "kplus_logdev", physname = "C:sybasedatakpluslog01", size = "2M"
go
2. 创建数据库
create database kplus_db on kplus_dev log on kplus_logdev
go
3. 创建login user
-- sp_addlogin loginame, passwd [, default_db] [, deflanguage] ….
sp_addlogin kplus, kplus1, kplus_db
go
4. 创建group
use kplus_db
go
sp_addgroup kplus_group
go
5. 创建role,并分配给login user
use master
go
create role kplus_role
go
grant create table to kplus_role
go
grant role kplus_role to kplus
go
sp_modifylogin kplus, "add default role", kplus_role
go
6. 增加database user
use kplus_db
go
-- sp_adduser loginame [, name_in_db [, group_name]]
sp_adduser kplus, kplus_db, kplus_group
go
7. 用新创建的kplus用户在kplus_db数据库中创建表
create table test(age int)
但是给出错误信息:
CREATE TABLE permission denied, database kplus_db, owner dbo
如果直接将create table 权限给kplus_db用户,则可以创建表。
谢谢! |
|