– 这需要服务器级别的alter ANY LOGIN权限
– 和数据库级别的alter ANY USER权限
create procedure sp_createPrincipal @name varchar(256), @password varchar(128) as declare @sqlcmd varchar(2000); begin tran; — create login set @sqlcmd = ’create login ’ + quotename(@name) + ’ with password = ’ + quotename(@password, ’’’’); exec (@sqlcmd); if @@error <> 0 begin rollback tran; print ’Cannot create login’ return; end — create user set @sqlcmd = ’create user ’ + quotename(@name); exec (@sqlcmd); if @@error <> 0 begin rollback tran; print ’Cannot create user’ return; end commit tran; go |
– 调用这个存储过程
– 创建主体
sp_createPrincipal ’alice’, ’Apufe@))%’; |
–我们需要让alice可以调用这个存储过程,创建新的主体,
– 但并不直接授予她权限(创建主体的权限,译者注)
grant execute on sp_createPrincipal to alice; |
– 目前 alice还不能创建主体
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
作者
相关推荐
-
TT百科:存储过程
存储的过程可以访问或修改数据库中的数据,但并不绑定到特定的数据库或对象,这提供了许多优点。
-
在Oracle数据库的自定义函数中调用存储过程
在Oracle数据库的自定义函数中调用存储过程是否可行,Oracle专家Brian Peasland给出了具体的解答。
-
数据库工程师2012年3月刊:数据库2012
数据库的2012,不是末日而是新生。传统厂商纷纷发布大版本更新的数据库产品,开源技术更加强势,2012的精彩始于《数据库工程师》……
-
解读SQL Server数据库存储过程发展历史
SQL Server存储过程可以是Transact-SQL(T-SQL)语句,或者是.NET框架的公共语言运行时(CLR),它是专为方便数据库查询而设计的。