使用存储过程MS SQL创建数据库用户



我有一个想法,在SQL存储过程中创建数据库用户(具有用户名和密码的帐户,可以使用这些凭据访问MS SQL数据库(,并在我的web应用程序中使用这些凭据,当用户使用该帐户登录时,连接数据库并与数据库交互。

通过这种方式,我将能够为每个帐户设置权限,然后该用户是否能够在没有我的网络应用程序的情况下以某种方式与我的数据库取得联系也就无关紧要了,因为他将无法通过我的网络应用程序进行更改。

简而言之->安全性直接在我的数据库中,而不是在我的web应用程序中。

正如你可能知道的,我不太熟悉这类东西,我敢打赌这已经是一种标准的安全方法,或者还有更好的方法。

我的问题是:
我可以使用MS SQL的存储过程之一在其中创建一个DB用户吗?

如果可能的话,我该怎么做,例如更改它的密码?

或者,如果我想添加更多的信息,而不仅仅是用户名和密码,我会用这些新列创建一个表(例如名字和姓氏、昵称、电话号码等(,我该如何将DB用户与我的表连接起来
(我想这会类似于"DB用户的用户名是唯一的,所以只需保存用户名"(。

正如你所看到的,我有一个大致的想法,但它在我的脑海中仍然有点混乱,我想知道是否有人能用我的思路为我指明正确的方向。

您可以使用创建登录名/用户

USE MyDatabase
CREATE LOGIN MyLogin WITH PASSWORD = 'MyStrongPassword'
CREATE USER MyUser FOR LOGIN MyLogin

更改密码

ALTER LOGIN MyLogin WITH PASSWORD = 'MyNewStrongerPassword'

允许用户访问数据库中的表:

GRANT SELECT ON MyTable TO MyUser

您确实可以在存储过程中直接执行此操作,但我不确定您为什么要这样做——这肯定是数据库管理员的一次性操作,而不是需要存储过程提供的可重用性的操作?

最新更新