的用户,包含两个层面:一个是登陆号,另一个是具体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表。
这些数据库的许可有两种方式计算,按CPU或按用户数。许可费用又分为list price和企业协议两种。list price就是公开报价,按CPU数,每个CPU大概就是20万RMB左右,每个用户数1万元RMB左右,5个用户数起算。企业协议是数据库厂家与购买企业签订的购买协议,根据购买量和企业的规模,折扣度不等。购买软件许可后,每年的维护服务费一般按list price的10%计算,包括免费版本升级服务。如果你们公司还需要其他现场问题诊断解决、数据库优化等服务,需增加相应的费用。如果你们只需要购买使用许可,不需要维护服务(免费升级等),就不需要每年支付MT(维护)费用。如果需要更详细的报价情况,请打相关软件公司的800售前咨询电话,会有人很详细地根据你的要求给你list一个price的,呵呵。public static boolean isNumeric(String str){for (int i = str.length()--i>=0){
if (!Character.isDigit(str.charAt(i))){
return false
}
}
return true
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)