Declarative user management in sql
  • Go 99%
  • Makefile 1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-09-11 18:56:31 +01:00
cmd/sum update module path and urls 2026-09-11 18:43:46 +01:00
man rename project from sf to sum 2020-07-04 08:41:27 -07:00
mysql update module path and urls 2026-09-11 18:43:46 +01:00
testdata add any keyword, validate line exists in schema 2020-06-30 09:42:34 -07:00
.gitignore convert lines to permissions 2020-06-26 08:27:37 -07:00
go.mod update module path and urls 2026-09-11 18:43:46 +01:00
go.sum tidy dependencies 2020-07-03 13:56:21 -07:00
LICENSE replace isc license with agpl 2026-09-11 18:19:10 +01:00
Makefile update module path and urls 2026-09-11 18:43:46 +01:00
parser.go rename project from sf to sum 2020-07-04 08:41:27 -07:00
parser_test.go rename project from sf to sum 2020-07-04 08:41:27 -07:00
README.md replace mailing list references with email 2026-09-11 18:56:31 +01:00
store.go rename project from sf to sum 2020-07-04 08:41:27 -07:00
sum.go rename project from sf to sum 2020-07-04 08:41:27 -07:00

sum(1)

sum(1) ("SQL user manager") declaratively configures user roles and permissions in SQL databases. Its configuration is based heavily on the syntax of pf firewall in OpenBSD.

sum(1) works around incredible shortcomings in MySQL user management, but it may be useful for other databases as well. Currently there's only support for MySQL but patches for additional databases are welcome.

See this article on SQL User Management to understand the rational for this.

Install

$ git clone ssh://git@git.evantann.com:2222/egtann/sum.git && cd sum
$ sudo make install

After installation, check the man pages for usage information for sum(1) and sum.conf(5).

Contact

To report bugs, discuss functionality or submit patches, email os@evantann.com.

TODO

  • quoted values, e.g. multi-word statement "alter routine"
  • combine users into the permissions struct to simplify code?
  • more tests
  • Postgres, MariaDB, MySQL v8 support