
◆没有管理 Windows NT 4.0 或 Windows 2000 用户帐户的权限。
说明 请避免角色的深层嵌套以免影响性能。
例如,一个公司可能成立慈善活动委员会,其中包括来自不同部门,来自组织中各种不同级别的职员。这些职员需要访问数据库中特殊的项目表。没有只包括这些职员的现有 Windows NT 4.0 或 Windows 2000 组,而且没有其它理由在 Windows NT 4.0 或 Windows 2000 中创建这样一个组。可以为此项目创建一个自定义 SQL Server 数据库角色 CharityEvent,并将个别的 Windows NT 和 Windows 2000 用户添加到此数据库角色。当应用权限后,数据库角色中的用户便获得对表的访问权限。其它数据库活动的权限不受影响,只有 CharityEvent 用户可以使用该项目表。
SQL Server 角色存在于一个数据库中,不能跨多个数据库。
使用数据库角色的好处包括:
◆对于任何用户,都可以随时让多个数据库角色处于活动状态。
◆如果所有用户、组和角色都在当前数据库中,则 SQL Server 角色可以包含 Windows NT 4.0 或 Windows 2000 组和用户,以及 SQL Server 用户和其它角色。
◆在同一数据库中,一个用户可属于多个角色。
◆提供了可伸缩模型以便在数据库中设置正确的安全级别。
说明 数据库角色要么在创建角色时由明确指定为所有者的用户所拥有,要么在未指定所有者时为创建角色的用户所拥有。角色的所有者决定可以在角色中添加或删除谁。
创建数据命令:1
create database database_name
创建表:
1
create table table_name (id int primary key,name varchar(30))
这个问题别人已经问过,且我已经回答了,你可以参考一下:sybase数据库的用户,包含两个层面:一个是登陆号,另一个是具体DB的用户,我们登陆时,使用的是登录号,但是这个登录号可以 *** 作哪些DB及 *** 作权限则取决于数据库用户。一般情况下,我们可以采取相同的名字来表示登录号和数据库用户。
首先创建一个登陆号:
sp_addlogin loginame, passwd
loginame 登录名
passwd 密码
全部语法(一般不用到)为:
sp_addlogin loginame, passwd [, defdb]
[, deflanguage ] [, fullname ] [, passwdexp ]
[, minpwdlen ] [, maxfailedlogins ]
然后创建用户:
sp_adduser loginame
这样创建当前数据库的用户,且用户名和登陆名是一样的。
全部语法为:
[dbname..]sp_adduser loginame [, username[, grpname]]
最后分配权限:
grant all | select,insert,delete,update
on table_name | view_name | stored_procedure_name
to username
或
grant all | create database,create
default,create procedure,create rule,create table,create view,set proxy,set session authorization
to username
例,假如当前DB为:DB001:
sp_addlogin 'test001','password001'
go
sp_adduser 'test001', 'user001'
go
grant create table to user001
go
创建了一个test001的登录名,之后为之创建一个当前数据库的用户,使这个登录名可以 *** 作当前数据库。之后分配了创建表的权限给user001。
这个时候你就可以使用用户名'test001'和密码'password001'登陆了,并且可以在DB001中创建表了。同时由于sp_adduser 的时候没有指定grpname参数,那么默认是public用户组,这个组里的用户默认即开通了select/delete/update/insert的权限。
如果你希望去掉一些权限,请使用revoke命令,其语法了grant完全相同,你只需要将grant换成revoke即可,例:
revoke select on address to user001
禁止user001查看address表。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)