创建登录用户的语法 sp_addlogin 中,参数应该不应该加上 单引号 定界符呀,我试了下,发现加不加都是一样的效果,这是为什么?
以下两种写法,是完全相同的,我不明白为何会这样.exec sp_addlogin 'abc','0000','pubs'exec sp_addlogin abc,0000,pubs
以下两种写法,是完全相同的,我不明白为何会这样.exec sp_addlogin 'abc','0000','pubs'exec sp_addlogin abc,0000,pubs
sp_addlogin [ @loginame = ] 'login'
[ , [ @passwd = ] 'password' ]
[ , [ @defdb = ] 'database' ]
[ , [ @deflanguage = ] 'language' ]
[ , [ @sid = ] sid ]
[ , [ @encryptopt = ] 'encryption_option' ]
go
--新增用户
exec sp_addlogin 'test' --添加登录
exec sp_grantdbaccess N'test' --使其成为当前数据库的合法用户
exec sp_addrolemember N'db_owner', N'test' --授予对自己数据库的所有权限
--添加只允许访问指定表的用户:
exec sp_addlogin '用户名','密码','默认数据库名'
--添加到数据库
exec sp_grantdbaccess '用户名'
--分配整表权限
GRANT SELECT , INSERT , UPDATE , DELETE ON table1 TO [用户名]
--分配权限到具体的列
GRANT SELECT , UPDATE ON table1(id,AA) TO [用户名]
-------------------------
参数顺序可以不一致?有可能吗?
exec sp_addlogin 'gh','0000' 意思是用户名为 gh,密码为 0000
而
exec sp_addlogin '0000','gh' 的意思是用户名为 0000,密码为 gh 呀.
create procedure sp_addlogin
@loginame sysname
,@passwd sysname = Null
,@defdb sysname = 'master' -- UNDONE: DEFAULT CONFIGURABLE???
,@deflanguage sysname = Null
,@sid varbinary(16) = Null
,@encryptopt varchar(20) = Null
AS
......-->可以这样调用
exec sp_addlogin 'test','123','master',null,null,null
--参数顺序要和存储过程的一一对应。后面的默认值可以省略,中间的不能,中间省略了,参数就不能一一对应了。-->命名参数调用
exec sp_addlogin @passwd='123',@loginame='test'
--参数顺序可以乱写,默认参数全部可以省略。